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

时间:2017-12-14 19:02:49

标签: java excel apache apache-poi locale

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

  1. 以西班牙语格式显示日期,excel中的单元格类型应为日期。
  2. 以西班牙语格式显示小数金额/价格/货币值(例如:12,23或1.454,23),excel中的单元格类型应该是数字,即使它在值中有“,”并且应该能够在这些单元格上应用数字函数。
  3. 当我尝试使用以下代码在系统中使用西班牙语语言环境设置值时,

    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)时生成 系统的语言环境已更改,但实际上没有。

    非常感谢任何帮助。感谢。

1 个答案:

答案 0 :(得分:0)

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

由于