学习poi操作Excel文档,查看了很多的网上资料,发现使用poi进行Excel的使用主要分为四步:
一、创建一个Excel表
XSSFWorkbook hwb = new XSSFWorkbook();
二、获取数据库中的表
XSSFSheet hs = hwb.createSheet("poitest");
三、获取表中的某一行
XSSFRow hr = hs.createRow(0);
四、获取表中的某一列
XSSFCell[] hc = new XSSFCell[ColumnCount];
以下是我按照网上的例子写的一个使用poi生成Excel文件,并将从数据库中读取的内容放入里面的例子:
package com.poi.demo;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRichTextString;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
/**
*
* @author Administrator
*
*/
public class POIDownLoad {
//poi操作数据库导出Excel文件
public static void main(String[] args) {
//获取数据库连接
Connection conn = DBUtil.getConn();
PreparedStatement psmt = null;
ResultSet rs = null;
//数据库查询语句
String sql = "select * from poitest";
try {
//执行查询
psmt = conn.prepareStatement(sql);
//返回查询结果集
rs = psmt.executeQuery();
//获取表格中的总列数
int ColumnCount = rs.getMetaData().getColumnCount();
int i = 1;
//创建Excel文件
XSSFWorkbook hwb = new XSSFWorkbook();
//获取数据库中将要操作的表
XSSFSheet hs = hwb.createSheet("poitest");
//创建第一行内容
XSSFRow hr = hs.createRow(0);
//
XSSFCell[] hc = new XSSFCell[ColumnCount];
String[] names = new String[ColumnCount];
names[0] = "ID";
names[1] = "用户名";
names[2] = "密码";
for (int j = 0; j < ColumnCount; j++) {
hc[j] = hr.createCell((short)j);
hc[j].setCellValue(new XSSFRichTextString(names[j]));
}
while (rs.next()) {
XSSFRow hr1 = hs.createRow(i);
for (int j = 0; j < ColumnCount; j++) {
XSSFCell hc1 = hr1.createCell((short)j);
hc1.setCellValue(new XSSFRichTextString(rs.getString(j+1)));
}
i++;
}
OutputStream out = new FileOutputStream("C:\\POI.xlsx");
hwb.write(out) ;
out.close() ;
System.out.println("数据库导出成功") ;
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
DBUtil.close(conn);
DBUtil.close(psmt);
DBUtil.close(rs);
}
}
}