[Java] java poi操作excel文件 (新建Excel文件 添加行列、单元格) →→→→→进入此内容的聊天室

来自 , 2019-03-26, 写在 Java, 查看 147 次.
URL http://www.code666.cn/view/cdc0d6e6
  1.         /**
  2.          * 新建一个Excel文件,里面添加5行5列的内容,再添加两个高度为2的大单元格。
  3.          *
  4.          * @param fileName
  5.          */
  6.         public void writeExcel(String fileName) {
  7.  
  8.                 // 目标文件
  9.                 File file = new File(fileName);
  10.                 FileOutputStream fOut = null;
  11.                 try {
  12.                         // 创建新的Excel 工作簿
  13.                         HSSFWorkbook workbook = new HSSFWorkbook();
  14.  
  15.                         // 在Excel工作簿中建一工作表,其名为缺省值。
  16.                         // 也可以指定工作表的名字。
  17.                         HSSFSheet sheet = workbook.createSheet("Test_Table");
  18.  
  19.                         // 创建字体,红色、粗体
  20.                         HSSFFont font = workbook.createFont();
  21.                         font.setColor(HSSFFont.COLOR_RED);
  22.                         font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
  23.  
  24.                         // 创建单元格的格式,如居中、左对齐等
  25.                         HSSFCellStyle cellStyle = workbook.createCellStyle();
  26.                         // 水平方向上居中对齐
  27.                         cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
  28.                         // 垂直方向上居中对齐
  29.                         cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
  30.                         // 设置字体
  31.                         cellStyle.setFont(font);
  32.  
  33.                         // 下面将建立一个4行3列的表。第一行为表头。
  34.                         int rowNum = 0;// 行标
  35.                         int colNum = 0;// 列标
  36.                         // 建立表头信息
  37.                         // 在索引0的位置创建行(最顶端的行)
  38.                         HSSFRow row = sheet.createRow((short) rowNum);
  39.                         // 单元格
  40.                         HSSFCell cell = null;
  41.                         for (colNum = 0; colNum < 5; colNum++) {
  42.                                 // 在当前行的colNum列上创建单元格
  43.                                 cell = row.createCell((short) colNum);
  44.  
  45.                                 // 定义单元格为字符类型,也可以指定为日期类型、数字类型
  46.                                 cell.setCellType(HSSFCell.CELL_TYPE_STRING);
  47.                                 // 定义编码方式,为了支持中文,这里使用了ENCODING_UTF_16
  48.                                 cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  49.                                 // 为单元格设置格式
  50.                                 cell.setCellStyle(cellStyle);
  51.  
  52.                                 // 添加内容至单元格
  53.                                 cell.setCellValue("表头名-" + colNum);
  54.                         }
  55.                         rowNum++;
  56.                         for (; rowNum < 5; rowNum++) {
  57.                                 // 新建第rowNum行
  58.                                 row = sheet.createRow((short) rowNum);
  59.                                 for (colNum = 0; colNum < 5; colNum++) {
  60.                                         // 在当前行的colNum位置创建单元格
  61.                                         cell = row.createCell((short) colNum);
  62.                                         cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  63.                                         cell.setCellStyle(cellStyle);
  64.                                         cell.setCellValue("值-" + rowNum + "-" + colNum);
  65.                                 }
  66.                         }
  67.  
  68.                         // 合并单元格
  69.                         // 先创建2行5列的单元格,然后将这些单元格合并为2个大单元格
  70.                         rowNum = 5;
  71.                         for (; rowNum < 7; rowNum++) {
  72.                                 row = sheet.createRow((short) rowNum);
  73.                                 for (colNum = 0; colNum < 5; colNum++) {
  74.                                         // 在当前行的colNum位置创建单元格
  75.                                         cell = row.createCell((short) colNum);
  76.                                 }
  77.                         }
  78.                         // 建立第一个大单元格,高度为2,宽度为2
  79.                         rowNum = 5;
  80.                         colNum = 0;
  81.                         Region region = new Region(rowNum, (short) colNum, (rowNum + 1),
  82.                                         (short) (colNum + 1));
  83.                         sheet.addMergedRegion(region);
  84.                         // 获得第一个大单元格
  85.                         cell = sheet.getRow(rowNum).getCell((short) colNum);
  86.                         cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  87.                         cell.setCellStyle(cellStyle);
  88.                         cell.setCellValue("第一个大单元格");
  89.  
  90.                         // 建立第二个大单元格,高度为2,宽度为3
  91.                         colNum = 2;
  92.                         region = new Region(rowNum, (short) colNum, (rowNum + 1),
  93.                                         (short) (colNum + 2));
  94.                         sheet.addMergedRegion(region);
  95.                         // 获得第二个大单元格
  96.                         cell = sheet.getRow(rowNum).getCell((short) colNum);
  97.                         cell.setEncoding(HSSFCell.ENCODING_UTF_16);
  98.                         cell.setCellStyle(cellStyle);
  99.                         cell.setCellValue("第二个大单元格");
  100.  
  101.                         // 工作薄建立完成,下面将工作薄存入文件
  102.                         // 新建一输出文件流
  103.                         fOut = new FileOutputStream(file);
  104.                         // 把相应的Excel 工作簿存盘
  105.                         workbook.write(fOut);
  106.                         fOut.flush();
  107.                         // 操作结束,关闭文件
  108.                         fOut.close();
  109.  
  110.                         System.out
  111.                                         .println("Excel文件生成成功!Excel文件名:" + file.getAbsolutePath());
  112.                 } catch (Exception e) {
  113.                         System.out
  114.                                         .println("Excel文件" + file.getAbsolutePath() + "生成失败:" + e);
  115.                 } finally {
  116.                         if (fOut != null) {
  117.                                 try {
  118.                                         fOut.close();
  119.                                 } catch (IOException e1) {
  120.                                 }
  121.                         }
  122.                 }
  123.         }
  124.  

回复 "java poi操作excel文件 (新建Excel文件 添加行列、单元格)"

这儿你可以回复上面这条便签

captcha