使用Apache ODF工具包格式化单元格简单API和Java



我需要使用Apache ODF工具创建ODS文档,并格式化其单元格的内容。

我能够为日期和简单数字设置格式,但是由于某种原因,当我尝试使用科学符号格式化时,它行不通。它无法解析字符串或将E00包裹到" E00"

SpreadsheetDocument document = SpreadsheetDocument.newSpreadsheetDocument();
    document.removeSheet(0);
    document.setLocale(Locale.US);
    Table sheet = document.appendSheet("My chart");
    List<Row> rows = sheet.appendRows(10);
    sheet.getColumnByIndex(0).setWidth(27.06);
    Row headerRow = rows.get(0);
    headerRow.getCellByIndex(0).setStringValue("This is a string");
    Row dateRow = rows.get(1);
    Calendar date = GregorianCalendar.getInstance();
    dateRow.getCellByIndex(0).setDateValue(date);
    dateRow.getCellByIndex(0).setFormatString("yyyy-MM-dd");
    Row numRow = rows.get(1);
    numRow.getCellByIndex(0).setDoubleValue(9.12345678);
    //numRow.getCellByIndex(0).setFormatString("0.000"); // works
    //numRow.getCellByIndex(0).setFormatString("0.00E+00"); // crashes
    numRow.getCellByIndex(0).setFormatString("0.00E00"); // does not work, it becomes 0.00"E00"
    document.save(new File("c:\Users\enrico\Desktop\openoffice.ods"));

我真的很感激是否有人能提供帮助,谢谢。

完整代码在此处https://gist.github.com/enricoscantamburlo/B06D3A9E52682276B8CA4F6BF51E6F51E6F6A

基本上您想做的是Apache ODF Toolkit(从0.8.2版本开始(。为了能够使用.ods文件中的科学数字格式,基础库(在您的情况下,Apache ODF工具(应该能够生成<number:scientific-number>数字样式。有关科学数字样式的更多信息,请参见http://docs.oasis-open.org/office/v1.1/os/opendocument-v1.1-html/opendocument-v1.1.html#14.7.7.1.number�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r%Mer%20style |轮廓。

似乎Apache ODF工具包将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

相关内容

  • 没有找到相关文章

最新更新