zoukankan      html  css  js  c++  java
  • eclipse sql server 导出excel文件

    Jxl.jar

    访问Excel的Jar包

    注意:支持以.xls结尾的Excel文件,可能不支持.xlsx结尾的 

    下载地址:

    程序所需要得包:

    程序代码:

    package partice;
    import java.io.File;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Date;
    import javax.swing.JOptionPane;
    import jxl.Workbook;
    import jxl.read.biff.BiffException;
    import jxl.write.Label;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    import jxl.write.WriteException;
    import jxl.write.biff.RowsExceededException;
    public class export {
        static ResultSet rs = null;
        static ResultSetMetaData rsData = null;
        static int sheetIndex = 0; // 计数器,起始为0
        static int perPageSize = 60000;// excel2003每张表最大为65536行
        static String fileName = "调剂学生信息.xls";// 新建的表格名称
        static String URL = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=studentdatabase";// 数据库IP地址
        static String DriverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        static String username = "sa";// 用户
        static String password = "19940503";// 密码
    public  void main(String[] args) throws Exception {
            connectOracle();
        }
    public void connectOracle() throws SQLException, ClassNotFoundException {
            Connection conn = null;
            Class.forName(DriverName);
            long begintime = System.currentTimeMillis();
            try {
                System.out.println("数据库连接开始:" + new Date(System.currentTimeMillis()));
                conn = DriverManager.getConnection(URL, username, password);
                Statement state = conn.createStatement(
                        ResultSet.TYPE_SCROLL_INSENSITIVE,
                        ResultSet.CONCUR_READ_ONLY);
                String sql = "select * from register";
                rs = state.executeQuery(sql);
                rsData = rs.getMetaData();// 获得所需要的rs信息
                rs.last();
                int size = rs.getRow();// 列数
                rs.beforeFirst();
                int sheetsize = size / perPageSize + 1;// sheetsize是sheet的总页数
                writeexcel(rs);// 新建一个excel,并且写入第一张表,每次只能写一张表
                for (int i = 1; i < sheetsize; i++) {
                    System.out.println(2);
                    updateexcel(rs);// 写入后面的后面的表
                }
            } catch (Exception e) {
                System.out.println("数据库连接错误");
                e.printStackTrace();
            } finally {
                conn.close();
                System.out.println("数据库连接关闭!用时:"
                        + (System.currentTimeMillis() - begintime) + "ms");
                JOptionPane.showMessageDialog(null, "导出成功", "提示信息", JOptionPane.WARNING_MESSAGE);
            }
        }
    static void writeexcel(ResultSet rs) throws IOException, Exception,
                WriteException {
            WritableWorkbook book = Workbook.createWorkbook(new File(fileName));
            WritableSheet sheet = book.createSheet("第" + (sheetIndex + 1) + "页",
                    sheetIndex);
            int i = 1;// 每一页设为第一行
            while (rs.next()) {
                for (int j = 1; j <= rsData.getColumnCount(); j++) {
                    Label label = new Label(j - 1, i, rs.getString(j) == null ? ""
                            : rs.getString(j).toString());
                    if (i == 1) {// 标题只加载第一次
                        Label titleLabel = new Label(j - 1, 0, rsData
                                .getColumnName(j));
                        sheet.addCell(titleLabel);
                    }
                    sheet.addCell(label);
                }
                i++;
                if (i > perPageSize) {
                    break;
                }
            }
            sheetIndex++;
            book.write();
            book.close();
        }
    static void updateexcel(ResultSet rs) throws BiffException, IOException,
                RowsExceededException, WriteException, SQLException {
            Workbook wb = Workbook.getWorkbook(new File(fileName));
            WritableWorkbook book = Workbook.createWorkbook(new File(fileName), wb);
            WritableSheet sheet = book.createSheet("第" + (sheetIndex + 1) + "页 ",
                    sheetIndex);
            int i = 1;// 每一页设为第一行
            while (rs.next()) {
                for (int j = 1; j <= rsData.getColumnCount(); j++) {
                    Label label = new Label(j - 1, i, rs.getString(j) == null ? ""
                            : rs.getString(j).toString());
                    if (i == 1) {// 标题只加载第一次
                        Label titleLabel = new Label(j - 1, 0, rsData
                                .getColumnName(j));
                        sheet.addCell(titleLabel);
                    }
                    sheet.addCell(label);
                }
                i++;
                if (i > perPageSize) {
                    break;
                }
            }
            sheetIndex++;
            book.write();
            book.close();
        }
    }

    对应数据库

     java实现数据库导出ECXL表格:ttps://blog.csdn.net/captian_900331/article/details/49689199

  • 相关阅读:
    变量的创建和初始化
    HDU 1114 Piggy-Bank (dp)
    HDU 1421 搬寝室 (dp)
    HDU 2059 龟兔赛跑 (dp)
    HDU 2571 命运 (dp)
    HDU 1574 RP问题 (dp)
    HDU 2577 How to Type (字符串处理)
    HDU 1422 重温世界杯 (dp)
    HDU 2191 珍惜现在,感恩生活 (dp)
    HH实习 acm算法部 1689
  • 原文地址:https://www.cnblogs.com/fcfc940503/p/10823856.html
Copyright © 2011-2022 走看看