將查詢的記錄導出成excel表(poi)

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文件在工程的根目錄下

發佈了35 篇原創文章 · 獲贊 8 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章