我需要使用Apache ODF Toolking创建ods文档并格式化其单元格的内容。
我能够设置日期和简单数字的格式,但出于某种原因,当我尝试使用科学记数法进行格式化时,它不起作用。它无法解析字符串或将E00包装到" E00"
equation = pd.Series([])
if keep['seasonality']:
equation = equation.add(months,fill_value=0)
if keep['age']:
equation = equation.add(age,fill_value=0)
equation
Out[91]:
0 2.0
1 3.0
2 3.0
3 4.0
4 5.0
dtype: float64
如果有人能提供帮助,我真的很感激,谢谢。
这里的完整代码https://gist.github.com/EnricoScantamburlo/b06d3a9e52682276b8ca4f6bf51e6f6a
答案 0 :(得分:2)
基本上,Apache ODF Toolkit不支持您想要做的事情(从0.8.2版本开始)。
为了能够在.ods文件中使用Scientific Number格式,底层库(在您的情况下为Apache ODF Tool)应该能够生成<number:scientific-number>
数字样式。有关科学数字样式的更多信息,请参阅http://docs.oasis-open.org/office/v1.1/OS/OpenDocument-v1.1-html/OpenDocument-v1.1.html#14.7.1.Number%20Style|outline。
似乎Apache ODF Toolkit将E0
视为货币或其他特殊符号,而不是生成类似
<number:number-style style:name="N117">
<number:scientific-number number:decimal-places="2" number:min-exponent-digits="2" number:min-integer-digits="1">
</number:scientific-number>
</number:number-style>
它只是生成这个
<number:number-style style:name="n3cf821">
<number:number number:decimal-places="2" number:min-integer-digits="1"></number:number>
<number:text>E0</number:text>
</number:number-style>
好消息,Apache ODF Toolkit是开源的,所以你可以提供修复,这很容易,只需修复OdfNumberStyle.buildFromFormat
。