2、java利用jxl实现导出excel表

第一步:CSDN下载 jxl.jar,并导入项目中

第二步:创建实体类MarkesData.java

public class MarkesData {
    private String user_name;// 姓名
    private String area_name;// 地区
    private String college_name;// 院校
    private String class_name;// 班级
    private String test_name;// 号码

    public String getUser_name() {
        return user_name;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }

    public String getArea_name() {
        return area_name;
    }

    public void setArea_name(String area_name) {
        this.area_name = area_name;
    }

    public String getCollege_name() {
        return college_name;
    }

    public void setCollege_name(String college_name) {
        this.college_name = college_name;
    }

    public String getClass_name() {
        return class_name;
    }

    public void setClass_name(String class_name) {
        this.class_name = class_name;
    }

    public String getTest_name() {
        return test_name;
    }

    public void setTest_name(String test_name) {
        this.test_name = test_name;
    }

}

第三步:创建写出excel类WriExcel.java

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;

import jxl.Workbook;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

/**
 * 利用jxl.jar实现数据库中的表信息导出Excel中
 * 
 * @author Administrator
 * 
 */
public class WriExcel {

    // 声明Excel表
    WritableWorkbook book = null;

    /**
     * 通过传入(保存表信息的ArrayList,Excel存放路径位置)
     * 
     * @param arlist
     *            数据库中的表信息添加到ArrayList中
     * @param Path
     *            Excel表存放的路径位置
     */
    public void OutputExcel(ArrayList<MarkesData> arlist, String Path) {
        try {
            // 根据路径实例化Excel表
            book = Workbook.createWorkbook(new File(Path));
            // 设置工作表名
            WritableSheet sheet = book.createSheet("单子", 0);
            // 在单元格中生成表格题头
            Label labe1 = new Label(0, 0, "姓名");
            Label labe2 = new Label(1, 0, "地区");
            Label labe3 = new Label(2, 0, "院校");
            Label labe4 = new Label(3, 0, "班级");
            Label labe5 = new Label(4, 0, "号码");
            // 将生成的单元格添加到工作表中
            sheet.addCell(labe1);
            sheet.addCell(labe2);
            sheet.addCell(labe3);
            sheet.addCell(labe4);
            sheet.addCell(labe5);

            // 利用迭代器获取ArrayList中的信息
            Iterator<MarkesData> it = arlist.iterator();
            // i表示单元格所在的行数
            int i = 1;
            // while循环依次将数据写入Excel单元格中
            while (it.hasNext()) {
                // 通过迭代获得arlist里的MarkesData对象
                MarkesData temp = (MarkesData) it.next();
                // 取得数据生成单元格
                Label label1 = new Label(0, i, temp.getUser_name());
                Label label2 = new Label(1, i, temp.getArea_name());
                Label label3 = new Label(2, i, temp.getCollege_name());
                Label label4 = new Label(3, i, temp.getClass_name());
                Label label5 = new Label(4, i, temp.getTest_name());
                // 将生成的单元格添加到工作表中
                sheet.addCell(label1);
                sheet.addCell(label2);
                sheet.addCell(label3);
                sheet.addCell(label4);
                sheet.addCell(label5);
                // 增加行数
                i++;
            }
            // 表实行写操作
            book.write();
            // 关闭表
            book.close();
        } catch (RowsExceededException e) {
            e.printStackTrace();
        } catch (WriteException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (book != null)
                    book.close();
            } catch (Exception e) {
                System.out
                        .println("exception when closing Connection in finally");
                System.out.println(e.getMessage().toString());
            }
        }
    }

    /**
     * 进行数据库操作,从数据库中获取表信息
     * 
     * @return 返回数据库中保存的表信息,保存在ArrayList中
     */
    public ArrayList<MarkesData> connection() {
        Connection conn = null;
        try {
            // 进行数据库连接操作
            String dbURL = "jdbc:sqlserver://localhost:1433; DatabaseName=excel";
            String userName = "sa"; // 默认用户名
            String userPwd = "sql2005"; // 密码
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            conn = DriverManager.getConnection(dbURL, userName, userPwd);
            Statement state = conn.createStatement();
            String sql = "select * from data ";
            // 执行sql语句获取数据库中的表信息,并放到ResultSet中
            ResultSet rs = state.executeQuery(sql);
            // 创建ArrayList,保存数据库信息
            ArrayList<MarkesData> list = new ArrayList<MarkesData>();
            while (rs.next()) {
                MarkesData md = new MarkesData();
                String user_name = rs.getString("user_name");
                String area_name = rs.getString("area_name");
                String college_name = rs.getString("college_name");
                String class_name = rs.getString("class_name");
                String test_name = rs.getString("test_name");
                md.setUser_name(user_name);
                md.setArea_name(area_name);
                md.setCollege_name(college_name);
                md.setClass_name(class_name);
                md.setTest_name(test_name);
                list.add(md);
            }
            rs.close();
            state.close();
            return list;
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        return null;
    }

    public static void main(String[] args) {
        WriExcel w = new WriExcel();
        // 从数据库获取表信息
        ArrayList<MarkesData> arlist = w.connection();
        // 根据表信息和路径向Excel中写数据
        w.OutputExcel(arlist, "e:\\1.xls");
    }
}


你可能感兴趣的:(2、java利用jxl实现导出excel表)