Java JdbTable导出为Execl

程序   2008-08-21 10:10   阅读1   评论0  
字号:    

public void writeExcel(String fileName) {
    //目标文件
    File file = new File(fileName);
    FileOutputStream fOut = null;
    try {
      //    创建新的Excel 工作簿
      HSSFWorkbook workbook = new HSSFWorkbook();

      //    在Excel工作簿中建一工作表,其名为缺省值。
      //    也可以指定工作表的名字。
      HSSFSheet sheet = workbook.createSheet("Test_Table");

      //  创建字体,红色、粗体
      HSSFFont font = workbook.createFont();
      font.setColor(HSSFFont.COLOR_RED);
      font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

 

//需要导入的包为:poi-scratchpad-3.1-beta2-20080526.jar ,poi-contrib-3.1-beta2-20080526.jar ,poi-3.1-beta2-20080526.jar

      //  创建单元格的格式,如居中、左对齐等
      HSSFCellStyle cellStyle = workbook.createCellStyle();
      //  水平方向上居中对齐
      cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
      //  垂直方向上居中对齐
      cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
      //  设置字体
      cellStyle.setFont(font);
      HSSFRow r = sheet.createRow(1);

      //下面将建立一个4行3列的表。第一行为表头。
      int rowNum = 0; //行标
      int colNum = 0; //列标

      //建立表头信息
      //    在索引0的位置创建行(最顶端的行)
      HSSFRow row = sheet.createRow( (short) rowNum);
      //  单元格
      HSSFCell cell = null;
      for (colNum = 0; colNum < jdbTable1.getColumnCount(); colNum++) {
        //    在当前行的colNum列上创建单元格
        cell = row.createCell( (short) colNum);

        //    定义单元格为字符类型,也可以指定为日期类型、数字类型
        cell.setCellType(HSSFCell.CELL_TYPE_STRING);
        //  定义编码方式,为了支持中文,这里使用了ENCODING_UTF_16
        cell.setEncoding(HSSFCell.ENCODING_UTF_16);
        //  为单元格设置格式
        cell.setCellStyle(cellStyle);

        //    添加内容至单元格
        cell.setCellValue(jdbTable1.getColumnName(colNum));
      }
      rowNum++;

      for (; rowNum < jdbTable1.getRowCount(); rowNum++) {
        //  新建第rowNum行
        row = sheet.createRow( (short) rowNum);
        for (colNum = 0; colNum < jdbTable1.getColumnCount(); colNum++) {
          // 在当前行的colNum位置创建单元格
          cell = row.createCell( (short) colNum);
          cell.setCellType(HSSFCell.CELL_TYPE_STRING);
          cell.setEncoding(HSSFCell.ENCODING_UTF_16);
          cell.setCellStyle(cellStyle);
          String value = String.valueOf(jdbTable1.getValueAt(rowNum, colNum));
          cell.setCellValue(value);
        }
      }

      //  工作薄建立完成,下面将工作薄存入文件
      //    新建一输出文件流
      fOut = new FileOutputStream(file);
      //    把相应的Excel 工作簿存盘
      workbook.write(fOut);
      fOut.flush();
      //    操作结束,关闭文件
      fOut.close();

      JOptionPane.showMessageDialog(this, "文件生成成功!!!", "系统提示",
                                    JOptionPane.INFORMATION_MESSAGE);
      System.out.println("Excel文件生成成功!Excel文件名:" + file.getAbsolutePath());
    }
    catch (Exception e) {
      JOptionPane.showMessageDialog(this, "文件生成失败!!!", "系统提示",
                                    JOptionPane.INFORMATION_MESSAGE);
      System.out.println("Excel文件" + file.getAbsolutePath() + "生成失败:" + e);
    }
    finally {
      if (fOut != null) {
        try {
          fOut.close();
        }
        catch (IOException e1) {
        }
      }
    }
  }

评论(?)
阅读(?)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
网易公司版权所有 ©1997-2009