java - 有没有办法将 Aspose Cell 的值设置为字符串表示形式,同时保持其类型/样式?
问题描述
我们有一个程序可以在各种文件(包括 Excel)中进行模式替换,并且正在使用 Aspose。例如,我们可能有一个单元格是PATTERN_TO_REPLACE,然后我们将其替换为“6”或“6.0”或“1,000.00”(在美国)或“1.000,00”(在英国)。
(PATTERN_TO_REPLACE也可以在公式中)。
问题是我们必须使用 Java 匹配器来查找(和替换)字符串,这意味着我们正在调用 cell.setValue(String)。这导致 Aspose 将 CellValueType 更改为字符串,即使它以前是数字的。
我们最初的解决方案是查看我们是否认为该字符串是一个数字,然后将其转换为 BigDecimal 并照此传递,但这会导致大量工作(特别是对于货币类型的本地化......)
我想做的是调用 cell.getStyle()、cell.getType(),保存它们,设置值,然后返回它们,但是没有 cell.setType() 方法。有没有一种简单的方法可以做我想做的事?
解决方案
当您使用 cell.setValue(String) 时,它肯定会设置字符串类型。我认为您可以尝试使用 cell.putValue(String, true) 之类的重载。这样,如果您插入数字(作为字符串),它将自动转换为数字并将其设置为数字类型。
PS。我在 Aspose 担任支持开发人员/传播者。
推荐阅读
- apache-kafka - kafka-cluster中有多个offsets.topic.replication.factor?
- gate - GATE 工具:在 XML 注释期间更改文本
- xcode - Mac 应用程序的 SF 符号
- rundeck - 如何在登录 rundeck 后立即禁用欢迎 Rundeck 页面?
- c - 为什么这个 execlp() 函数没有执行?
- keycloak - Keycloak 支持 SCIM 吗?
- node.js - 从 cron/shellJS 重新启动 pm2 - bcrypt 版本错误
- python - subprocess.check_ouput 吐出错误第 356 行和第 438 行
- db2 - db2iupdt 错误:指定的实例“instance_name”不存在
- mongodb - Mongo $meta textScore 未在查询结果中返回