详解Java POI excel自定义设置单元格格式
1、设置单元格格式:来源_formats
更多数据类型从formats里面发现
private static final String[] _formats = new String[]{"General", "0", "0.00", "#,##0", "#,##0.00", "\"$\"#,##0_);(\"$\"#,##0)", "\"$\"#,##0_);[Red](\"$\"#,##0)", "\"$\"#,##0.00_);(\"$\"#,##0.00)", "\"$\"#,##0.00_);[Red](\"$\"#,##0.00)", "0%", "0.00%", "0.00E+00", "# ?/?", "# ??/??", "m/d/yy", "d-mmm-yy", "d-mmm", "mmm-yy", "h:mm AM/PM", "h:mm:ss AM/PM", "h:mm", "h:mm:ss", "m/d/yy h:mm", "reserved-0x17", "reserved-0x18", "reserved-0x19", "reserved-0x1A", "reserved-0x1B", "reserved-0x1C", "reserved-0x1D", "reserved-0x1E", "reserved-0x1F", "reserved-0x20", "reserved-0x21", "reserved-0x22", "reserved-0x23", "reserved-0x24", "#,##0_);(#,##0)", "#,##0_);[Red](#,##0)", "#,##0.00_);(#,##0.00)", "#,##0.00_);[Red](#,##0.00)", "_(* #,##0_);_(* (#,##0);_(* \"-\"_);_(@_)", "_(\"$\"* #,##0_);_(\"$\"* (#,##0);_(\"$\"* \"-\"_);_(@_)", "_(* #,##0.00_);_(* (#,##0.00);_(* \"-\"??_);_(@_)", "_(\"$\"* #,##0.00_);_(\"$\"* (#,##0.00);_(\"$\"* \"-\"??_);_(@_)", "mm:ss", "[h]:mm:ss", "mm:ss.0", "##0.0E+0", "@"};
注意可能会出现不兼容的问题,但是不影响导出
2、设置单元格格式:自定义格式
2.1、自定义格式分析&源码分析
在formats数据格式不能完全支持的时候,如下图情况:
可能会使用自定义的数据格式来在单元格展示数据。如下图,部分自定义数据格式示例:
设置单元格格式源码分析:
下面开始源码部分
BuiltinFormats.getBuiltinFormat(format)
执行如下图:
返回-1时会进行自定义数据格式设置:
stylesSource.putNumberFormat(format)
执行如下图:
2.2、自定义单元格格式,代码示例
更多自定义数据格式在代码示例。
public static void setExcelCellDataFormat2() throws IOException { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("单元格数据类型"); XSSFRow row1 = sheet.createRow(0); // 单元格样式 XSSFCellStyle cellStyle = workbook.createCellStyle(); // 单元格数据格式 XSSFDataFormat cellDataFormat = workbook.createDataFormat(); // 人民币货币格式 cellStyle.setDataFormat(cellDataFormat.getFormat("¥#,##0.00")); XSSFCell cell1 = row1.createCell(0); cell1.setCellStyle(cellStyle); cell1.setCellValue(0.06); sheet.setColumnWidth(0, 256 * 14 + 184); // 美元货币格式 XSSFCellStyle cellStyle2 = workbook.createCellStyle(); cellStyle2.setDataFormat(cellDataFormat.getFormat("$#,##0.00")); XSSFCell cell2 = row1.createCell(1); cell2.setCellStyle(cellStyle2); cell2.setCellValue(0.06); sheet.setColumnWidth(1, 256 * 14 + 184); // 添加文字描述的数据格式 XSSFCellStyle cellStyle3 = workbook.createCellStyle(); cellStyle3.setDataFormat(cellDataFormat.getFormat("占比#,##0.00%")); XSSFCell cell3 = row1.createCell(2); cell3.setCellStyle(cellStyle3); cell3.setCellValue(0.06); sheet.setColumnWidth(2, 256 * 14 + 184); // 带颜色的数据格式化,正数为绿色,负数为红色 XSSFCellStyle cellStyle4 = workbook.createCellStyle(); cellStyle4.setDataFormat(cellDataFormat.getFormat("提升[绿色]#,##0.00%;[红色]下降#,##0.00%")); XSSFCell cell4 = row1.createCell(3); cell4.setCellStyle(cellStyle4); cell4.setCellValue(-0.06); sheet.setColumnWidth(3, 256 * 14 + 184); // 带颜色的数据格式化,正数为绿色,负数为红色 XSSFCellStyle cellStyle5 = workbook.createCellStyle(); cellStyle5.setDataFormat(cellDataFormat.getFormat("提升[绿色]#,##0.00%;[红色]下降#,##0.00%")); XSSFCell cell5 = row1.createCell(4); cell5.setCellStyle(cellStyle5); cell5.setCellValue(0.06); sheet.setColumnWidth(4, 256 * 14 + 184); FileOutputStream outputStream = new FileOutputStream("D:\\temp\\Excel单元格数据类型2.xlsx"); workbook.write(outputStream); outputStream.flush(); workbook.close(); outputStream.close(); }
示例运行结果:
参考链接:
Java 中使用POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写、单元格边框等
到此这篇关于Java POI excel设置单元格格式,自定义设置的文章就介绍到这了,更多相关Java POI excel单元格格式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
httpclient 请求http数据,json转map的实例
下面小编就为大家带来一篇httpclient 请求http数据,json转map的实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-12-12mybatisplus 复合主键(多主键) CRUD示例详解
这篇文章主要介绍了mybatisplus 复合主键(多主键) CRUD实例详解,本文通过实例代码图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2022-03-03SpringBoot工程打包后执行Java -Jar就能启动的步骤原理
这篇文章主要介绍了SpringBoot工程打包后为何执行Java -Jar就能启动,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-05-05WebSocket+Vue+SpringBoot实现语音通话的使用示例
本文主要介绍了WebSocket+Vue+SpringBoot实现语音通话的使用示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2023-11-11详解springboot集成websocket的两种实现方式
这篇文章主要介绍了springboot集成websocket的两种实现方式,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-01-01
最新评论