xml - 如何在 Beanio Xml 中将数字格式转换为字符串
问题描述
我有一个等于 0100 的字符串,当我生成 excel 文件时,我发现这个字段等于 100 。我想保留第一个值
<field name="sube" type="string" />
解决方案
这只是我怀疑这里发生的事情的一些背景。
您看到的行为实际上是 Excel 猜测列的数据类型应该是什么,并且由于您的“子”列中没有字母数字或任何特殊字符,它会尝试将这些值转换为数值,因此它会删除前导零,因为十进制(以 10 为基数)数字中的前导零不会更改数字的实际值。
一种解决方案可能是告诉BeanWriter
始终引用您的输出数据。这将强制 Excel 将所有列和数据视为“文本”,然后不应尝试解释和猜测列的数据类型。
有关更多选项,请参阅CSV 流格式属性文档,但您可以设置alwaysQuote = "true"
alwaysQuote - boolean - 如果设置为 true,则始终引用字段文本。默认情况下,仅当字段包含分隔符、引号或换行符时才会被引用。BeanWriter, Marshaller
在你的 BeanIO 映射 xml 文件中添加这个
<stream name="myStream" format="csv">
<parser>
<property name="alwaysQuote" value="true" />
</parser>
<!-- The rest of the mapping file content -->
</stream>
另一种选择是控制 Excel 如何导入 csv 文件以将该特定列视为text
而不是number
. 为此,请使用 Excel 中的“数据导入向导”。请参阅this、this和this以获得一些可能的选项。如果你谷歌它还有很多。
推荐阅读
- c++ - 通过 Flutter 从 C++ 插件访问资产
- typescript - Twilio - SMS 西班牙口音
- ssl - 如何在 Postman 中使用自签名证书?
- python - 您如何在 Django 中正确模拟第 3 方模块
- delphi - 如何防止 FastReport 在故意关闭数据集时打开它们?
- r - Sentiment_by 函数
- javascript - 我有一个下拉菜单和两个单选按钮。已选中 Onload 单选按钮“A”。在将下拉值更新为 123 单选按钮 B 时需要检查
- assembly - 手臂组件中的机器代码查找(分支)
- intellij-idea - IntelliJ IDEA:如何在结构替换期间创建新的类字段
- tensorflow - TensorFlow 找不到 GPU