当前位置: 首页 > 知识库问答 >
问题:

如何使用 Apache POI 强制 Excel 以西班牙语区域设置显示值

林魁
2023-03-14

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

    < li >以西班牙语格式显示日期,excel中的单元格类型应为日期。 < li >以西班牙语格式显示十进制金额/价格/货币值(例如: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),但它没有。

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

共有1个答案

吴高畅
2023-03-14

上述代码工作正常。问题是,仅仅改变系统的区域设置是不够的,还要改变系统的数字和日期格式。一旦改变了这一点,它就会正常工作。也在不同的现场机器上测试了它。

谢谢

 类似资料:
  • 我想强制我的Symfony 2.5应用程序的区域设置为。我希望这个区域设置用于strftime()函数。 我的: 我正在我的一个控制器中使用以下代码来调试: 当这样执行时,它显示:。 但是,当第一行未注释时,它会显示:,因此区域设置已安装在系统中并正常工作。 我如何使Symfony始终使用配置中指定的语言环境? $locale-a:

  • 问题内容: 我正在尝试学习如何使用NLTK标记西班牙语单词。 从nltk的书中,使用它们的示例标记英语单词非常容易。因为我是nltk和所有语言处理的新手,所以我对如何进行程序感到很困惑。 我已经下载了语料库。有没有办法指定一个语料库。我看了看文档,没有发现任何建议。我觉得我缺少一些关键概念。我是否需要在cess_esp语料库中手动标记文本中的单词?(通过手动,我的意思是标记我的情感,然后再次运行语

  • 我使用HtmlCleaner库来解析/转换java中的HTML文件。 似乎无法处理像“Áák NUÍíNU NU NU NU NU”这样的西班牙语字符 我可以在HtmlCleaner中设置任何属性来处理此解决方案或任何其他解决方案吗?这是我用来调用它的代码:

  • 绝影是在宾馆里首先见到BOSSLiu的,见面第一句话他正要问:“BOSS啊,最近有啥研究成果没有?拿出来分享分享。”哪晓得这次被BOSSLiu抢了先,只不过这次他万分激动地说:“BOSS啊,我发现现在金子遍地都是,剩下的就是如何去拣了!” BOSSLiu一改往日的习惯,这反而让绝影不知如何应对了。比如写程序,以前习惯用_snprintf,现在突然又冒出个_snprintf_s来,一时间竟不知道从哪

  • 我是新来的,想知道是否有人能帮我解决以下问题。 我正在用西班牙语和斯坦福大学的CoreNLP对文本进行情感分析,但没有得到积极的结果。 也就是说,如果我分析任何英语文本,把它放在西班牙语中分析是完美的,但结果总是否定的 我一直在寻找如何配置西班牙语解析器,令牌化和我发现的一切对于情感分析都是无用的。 有人可以告诉我,如果唯一有效的东西是标记化,而情感不是西班牙语? 这是我的属性文件,所以我设法找到

  • 在我的项目中,我将英文日期保存在数据库中作为“Y-m-d”。现在,我想用西班牙语显示日期,格式为2015年5月28日。我该怎么做?我试了下列方法,但没有用。 当我打印setlocale时,它返回bool(false)。还有别的办法吗?