POI主要對象
POI對象名稱 | 對應的Excel對象 |
---|---|
HSSFWorkbook | 工作簿 |
HSSFSheet | 工作表 |
HSSFRow | 行 |
HSSFCell | 單元格 |
poi與將查詢結果集組合一起使用,具體代碼如下:
public static void resultSetToExcel(ResultSet rs,String xlsName,String sheetName) throws Exception{
HSSFWorkbook workbook=new HSSFWorkbook();//創建一個excel文件
HSSFSheet sheet=workbook.createSheet();//創建一個工作表
workbook.setSheetName(0, sheetName);//設置工作表的名稱
HSSFRow row=sheet.createRow((short)0);//在這個工作表中創建一行
HSSFCell cell;
ResultSetMetaData md=rs.getMetaData();//得到數據表的字段
int nColumn=md.getColumnCount();//得到字段數量
//寫入各個字段的名稱
for(int i=1;i<=nColumn;i++){
cell=row.createCell((short)(i-1));//創建一個單元格
cell.setCellType(HSSFCell.CELL_TYPE_STRING);//設置這個單元格的數據類型
cell.setCellValue(md.getColumnLabel(i));//設置這個單元格的值
}
int iRow=1;
//寫入各條記錄,每條記錄對應Excel中的一行
while(rs.next()){
row=sheet.createRow((short)iRow);//創建第iRow行
for(int j=1;j<=nColumn;j++){
cell=row.createCell((short)(j-1));//創建一個單元格
cell.setCellType(HSSFCell.CELL_TYPE_STRING);//設置這個單元格的數據類型
cell.setCellValue(rs.getObject(j).toString());//得到數據並存儲在單元格中
}
iRow++;
}
FileOutputStream fOut=new FileOutputStream(xlsName+".xls");
workbook.write(fOut);
fOut.flush();
fOut.close();
JOptionPane.showMessageDialog(null, "導出數據成功!");
}
導出的*xls文件在工程的根目錄下