java poi操作excel文件 (新建Excel文件 添加行列、单元格)
2016-01-19 15:18
477 查看
转载于 <a target=_blank href="http://yuncode.net/code/c_50ae4105b8e0d55" target="_blank">yuncode</a>
/** * 新建一个Excel文件,里面添加5行5列的内容,再添加两个高度为2的大单元格。 * * @param fileName */ 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); // 创建单元格的格式,如居中、左对齐等 HSSFCellStyle cellStyle = workbook.createCellStyle(); // 水平方向上居中对齐 cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 垂直方向上居中对齐 cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 设置字体 cellStyle.setFont(font); // 下面将建立一个4行3列的表。第一行为表头。 int rowNum = 0;// 行标 int colNum = 0;// 列标 // 建立表头信息 // 在索引0的位置创建行(最顶端的行) HSSFRow row = sheet.createRow((short) rowNum); // 单元格 HSSFCell cell = null; for (colNum = 0; colNum < 5; 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("表头名-" + colNum); } rowNum++; for (; rowNum < 5; rowNum++) { // 新建第rowNum行 row = sheet.createRow((short) rowNum); for (colNum = 0; colNum < 5; colNum++) { // 在当前行的colNum位置创建单元格 cell = row.createCell((short) colNum); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellStyle(cellStyle); cell.setCellValue("值-" + rowNum + "-" + colNum); } } // 合并单元格 // 先创建2行5列的单元格,然后将这些单元格合并为2个大单元格 rowNum = 5; for (; rowNum < 7; rowNum++) { row = sheet.createRow((short) rowNum); for (colNum = 0; colNum < 5; colNum++) { // 在当前行的colNum位置创建单元格 cell = row.createCell((short) colNum); } } // 建立第一个大单元格,高度为2,宽度为2 rowNum = 5; colNum = 0; Region region = new Region(rowNum, (short) colNum, (rowNum + 1), (short) (colNum + 1)); sheet.addMergedRegion(region); // 获得第一个大单元格 cell = sheet.getRow(rowNum).getCell((short) colNum); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellStyle(cellStyle); cell.setCellValue("第一个大单元格"); // 建立第二个大单元格,高度为2,宽度为3 colNum = 2; region = new Region(rowNum, (short) colNum, (rowNum + 1), (short) (colNum + 2)); sheet.addMergedRegion(region); // 获得第二个大单元格 cell = sheet.getRow(rowNum).getCell((short) colNum); cell.setEncoding(HSSFCell.ENCODING_UTF_16); cell.setCellStyle(cellStyle); cell.setCellValue("第二个大单元格"); // 工作薄建立完成,下面将工作薄存入文件 // 新建一输出文件流 fOut = new FileOutputStream(file); // 把相应的Excel 工作簿存盘 workbook.write(fOut); fOut.flush(); // 操作结束,关闭文件 fOut.close(); System.out .println("Excel文件生成成功!Excel文件名:" + file.getAbsolutePath()); } catch (Exception e) { System.out .println("Excel文件" + file.getAbsolutePath() + "生成失败:" + e); } finally { if (fOut != null) { try { fOut.close(); } catch (IOException e1) { } } } }
相关文章推荐
- java中获取相对当前日的任何任意一天的方法
- Java的枚举类型用法介绍
- Java和C#运行速度对比:Java比C#快约3倍
- JAVA的静态变量、静态方法、静态类
- Java学习第5天:数组排序的原理解释
- eclipse 自动注释格式
- (转)谈eclipse的jre配置
- Java ArrayList构造分析
- Java transient关键字
- Java Servlet API中的forward()方法和redirect()方法的区别
- 使用java抓取网页的数据
- JAVA 集群技术
- Eclipse 异常退出,再次打开闪退
- url问号传值获取值
- Java BigDecimal 与 java的四舍五入 详解
- Spring4.0学习笔记005——Bean的配置三(基于XML文件)
- java动态代理之 asm字节码编辑器
- Eclipse 调试技巧
- Java JDBC 学习笔记
- java模拟线程干扰