DBConnection.java
连接数据库操作
package com.zkbj.poi; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public class DBConnection { private final String DBUrl = "jdbc:mysql://localhost:3306/****"; //1.修改数据库名 private final String DBDriver = "com.mysql.jdbc.Driver"; private final String username = "**"; //2.修改成你的MySql登录名和密码 private final String password = "***"; private Connection con; public DBConnection() { try { Class.forName(DBDriver); con = DriverManager.getConnection(DBUrl, username, password); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public Connection getDB() { return con; } public void closeDb(ResultSet rs, PreparedStatement ps) { if (rs != null) { try { rs.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } if (ps != null) { try { ps.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
ProductDir.java
读取产品信息数据并导出execl格式数据
package com.zkbj.poi; import java.io.FileOutputStream; import java.io.OutputStream; import java.sql.Connection; import java.sql.ResultSet; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class ProductDirExcel { public ProductDirExcel() throws Exception { Connection con = null; DBConnection db = new DBConnection(); con = db.getDB(); String sql = "select * from productdir"; ResultSet rs = con.createStatement().executeQuery(sql); // 获取总列数 int CountColumnNum = rs.getMetaData().getColumnCount(); int i = 1; // 创建Excel文档 HSSFWorkbook wb = new HSSFWorkbook(); // sheet 对应一个工作页 HSSFSheet sheet = wb.createSheet("productdir表中的数据"); //3.修改成你的Sheet HSSFRow firstrow = sheet.createRow(0); // 下标为0的行开始 HSSFCell[] firstcell = new HSSFCell[CountColumnNum]; String[] names = new String[CountColumnNum]; names[0] = "产品ID"; //4.修改成你的数据库数据名称。 names[1] = "产品名称"; names[2] = "产品版本"; names[3] = "产品备注"; names[4] = "产品分类ID"; for (int j = 0; j < CountColumnNum; j++) { firstcell[j] = firstrow.createCell((short) j); firstcell[j].setCellValue(new HSSFRichTextString(names[j])); } while (rs.next()) { // 创建电子表格的一行 HSSFRow row = sheet.createRow(i); // 下标为1的行开始 for (int j = 0; j < CountColumnNum; j++) { // 在一行内循环 HSSFCell cell = row.createCell((short) j); // 设置表格的编码集,使支持中文 // // 先判断数据库中的数据类型 // 将结果集里的值放入电子表格中 cell.setCellValue(new HSSFRichTextString(rs.getString(j + 1))); } i++; } // 创建文件输出流,准备输出电子表格 OutputStream out = new FileOutputStream("D:\\productdir.xls"); //5.修改成你创建Excel路径 并有这个文件展示数据 wb.write(out); out.close(); System.out.println("数据库导出成功"); rs.close(); con.close(); } public static void main(String[] args) { try { @SuppressWarnings("unused") ProductDirExcel excel = new ProductDirExcel(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
经过以上步骤可以使我们能够从数据库中导出数据并由Execel表示出来。
如果需要导出其他数据库只需要修改几组程序就可以完美表现出来,由于博主初学poi 所以对其Css设计还未了解。。。以后还会更新,期待我下次更新吧。。