如何强制Excel使用Apache POI以西班牙语语言环境显示值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何强制Excel使用Apache POI以西班牙语语言环境显示值相关的知识,希望对你有一定的参考价值。
我正在使用Apache POI在Excel中呈现少量报告。我的要求是,
- 以西班牙语格式显示日期,excel中的单元格类型应为日期。
- 以西班牙语格式显示小数金额/价格/货币值(例如:12,23或1.454,23),excel中的单元格类型应该是数字,即使它在值中有','并且应该能够应用数字在这些细胞上起作用。
当我尝试使用以下代码在系统中使用西班牙语语言环境设置值时,
CellStyle style = workBook.createCellStyle();
style.setDataFormat(workBook.createDataFormat().getFormat("##0.00%"));
cell.setCellStyle(style);
cell.setCellValue(new Double(23.45).doubleValue());
它将值显示为23.45%(不考虑系统区域设置)并允许数字函数。要修复它,如果我将格式更改为“## 0,00”,那么值将无法正确显示,并且不将单元格视为数字列,因此数字函数不起作用。所以,我要么必须将其转换为文本并设置值(我将失去在单元格中使用数字函数的能力)或使用'。'格式以显示数字(这不是要求)。
问题:
- 如何设置西班牙语格式编号/货币仍然使单元格类型接受数字函数(即使数字中带有“,”)?
- 有没有办法在单元格中强制使用此格式而不将值设置为文本?
- 有没有办法强制excel文件区域设置为西班牙语区域设置,因此无论它在何处打开,它都会以西班牙语格式显示值?
- 使用上面的代码,我使用标准格式(## 0.00)生成excel文件,并期望在系统的语言环境发生变化时更改格式(到## 0,00),但事实并非如此。
任何帮助将不胜感激。谢谢。
答案
提到的代码工作正常。问题在于,仅更改系统的区域设置,以及系统的数量和日期格式是不够的。一旦改变,它工作正常。在不同的语言环境机器中测试它。
谢谢
以上是关于如何强制Excel使用Apache POI以西班牙语语言环境显示值的主要内容,如果未能解决你的问题,请参考以下文章
如何使用apache poi在已存在的excel文件中创建新工作表