Java 中使用POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写、单元格边框等
2014-06-26 12:22
656 查看
目前office的版本有2003和2007版本。2003的excel版本使用的是HSSFWorkbook 2007的excel使用的是XSSFWorkbook。
其中在3.8版本之后HSSFWorkbook 以及XSSFWorkbook 均实现了Workbook 接口。需注意2007使用的包的版本:poi-ooxml-3.8.jar
导出或导入时,判断Excel版本的初始化的关键代码如下:
以下是Excel导出时常用的单元格设置,其中的HSSFCellStyle等可以用接口CellStyle替代(多态)。以下内容均从网上参考:
其中在3.8版本之后HSSFWorkbook 以及XSSFWorkbook 均实现了Workbook 接口。需注意2007使用的包的版本:poi-ooxml-3.8.jar
导出或导入时,判断Excel版本的初始化的关键代码如下:
private Workbook excel = null;// 创建一个POI Excel对象 private Sheet sheet = null;// 一个sheet对象 private int sheetNum = 0;// 第几个sheet private int columnNum = 0;// 列数 public ExcelOper initExcel(File excel, String fileType,int sheetNum, int columnNum) throws Exception { // 取得文件流 InputStream is = new FileInputStream(excel); if(fileType!= null && fileType.equalsIgnoreCase("xlsx")){ this.excel = new XSSFWorkbook(is); } else if(fileType!= null && fileType.equalsIgnoreCase("xls")){ this.excel = new HSSFWorkbook(is); } // 设置sheet对象 this.sheet = this.excel.getSheetAt(sheetNum); // 设置列数 this.setColumnNum(columnNum); return this; }
以下是Excel导出时常用的单元格设置,其中的HSSFCellStyle等可以用接口CellStyle替代(多态)。以下内容均从网上参考:
第一种:日期格式 cell.setCellValue(new Date(2008,5,5)); //set date format HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); HSSFDataFormat format= demoWorkBook.createDataFormat(); cellStyle.setDataFormat(format.getFormat("yyyy年m月d日")); cell.setCellStyle(cellStyle); 第二种:保留两位小数格式 cell.setCellValue(1.2); HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00")); cell.setCellStyle(cellStyle); 这里与上面有所不同,用的是HSSFDataFormat.getBuiltinFormat()方法,之所以用这个,是因为0.00是Excel内嵌的格式,完整的Excel内嵌格式列表大家可以看这个窗口中的自定义列表: 这里就不一一列出了 第三种:货币格式 cell.setCellValue(20000); HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); HSSFDataFormat format= demoWorkBook.createDataFormat(); cellStyle.setDataFormat(format.getFormat("¥#,##0")); cell.setCellStyle(cellStyle); 第四种:百分比格式 cell.setCellValue(20); HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); cellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00%")); cell.setCellStyle(cellStyle); 此种情况跟第二种一样 第五种:中文大写格式 cell.setCellValue(20000); HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); HSSFDataFormat format= demoWorkBook.createDataFormat(); cellStyle.setDataFormat(format.getFormat("[DbNum2][$-804]0")); cell.setCellStyle(cellStyle); 第六种:科学计数法格式 cell.setCellValue(20000); HSSFCellStyle cellStyle = demoWorkBook.createCellStyle(); cellStyle.setDataFormat( HSSFDataFormat.getBuiltinFormat("0.00E+00")); cell.setCellStyle(cellStyle); 此种情况也与第二种情况一样
创建sheet什么的就不多说了,直接进入正题 HSSFCellStyle cellStyle = wb.createCellStyle(); 一、设置背景色: cellStyle.setFillForegroundColor((short) 13);// 设置背景色 cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); 二、设置边框: cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框 cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框 cellStyle.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框 cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框 三、设置居中: cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER); // 居中 四、设置字体: HSSFFont font = wb.createFont(); font.setFontName("黑体"); font.setFontHeightInPoints((short) 16);//设置字体大小 HSSFFont font2 = wb.createFont(); font2.setFontName("仿宋_GB2312"); font2.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);//粗体显示 font2.setFontHeightInPoints((short) 12); cellStyle.setFont(font);//选择需要用到的字体格式 五、设置列宽: sheet.setColumnWidth(0, 3766); //第一个参数代表列id(从0开始),第2个参数代表宽度值 参考 :"2012-08-10"的宽度为2500 六、设置自动换行: cellStyle.setWrapText(true);//设置自动换行 七、合并单元格: Region region1 = new Region(0, (short) 0, 0, (short) 6);//参数1:行号 参数2:起始列号 参数3:行号 参数4:终止列号 //此方法在POI3.8中已经被废弃,建议使用下面一个 或者用 CellRangeAddress region1 = new CellRangeAddress(rowNumber, rowNumber, (short) 0, (short) 11); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列 但应注意两个构造方法的参数不是一样的,具体使用哪个取决于POI的不同版本。 sheet.addMergedRegion(region1);
相关文章推荐
- 【JAVA】POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写(copy)
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置Excel单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置Excel小数、百分比、货币、日期、科学计数法和中文大写
- POI 设置小数、百分比、货币、日期、科学计数法和中文大写
- NPOI设置格式文本、小数、百分比、货币、日期、科学计数法和中文大写
- POI设置Excel单元格格式 (数值,日期,文本等等)
- POI 设置EXCEL单元格格式(日期数字文本等)