如何强制Excel使用Apache POI以西班牙语语言环境显示值

问题描述 投票:0回答:1

我正在使用Apache POI在Excel中呈现少量报告。我的要求是,

  1. 以西班牙语格式显示日期,excel中的单元格类型应为日期。
  2. 以西班牙语格式显示小数金额/价格/货币值(例如: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),但事实并非如此。

任何帮助将不胜感激。谢谢。

java excel apache apache-poi locale
1个回答
0
投票

提到的代码工作正常。问题在于,仅更改系统的区域设置,以及系统的数量和日期格式是不够的。一旦改变,它工作正常。在不同的语言环境机器中测试它。

谢谢

© www.soinside.com 2019 - 2024. All rights reserved.