使用ODF Toolkit创建一个简单的表格文档

如果您要编写几个简单的报告,而您的用户使用的是Open Office,则不需要使用Bird,Jasper或其类似物之类的大型报告系统。

ODF Toolkit非常适合此任务。根据官方网站上的信息,

ODF Toolkit是一组Java模块,允许您以打开的文档格式(ISO / IEC 26300 == ODF)创建,扫描或操作文档。与其他方法不同,其他方法基于通过自动化接口使用繁重的编辑器进行运行时操作,因此ODF Toolkit轻巧,非常适合在服务器上使用。

图片

我从事一个使内部业务流程自动化的项目,并且经常要求用户提供有关累积信息的报告,并且由于Open Office在农业银行中很常见,因此使用Bird来构建报告。

它允许您生成任何文档格式。原则上,一个很棒的解决方案,简单易懂,但是,是否有可能在Java中实现相同的东西就变得很有趣。

所以我遇到了ODF Toolkit。

我将介绍一些基本方法,您可以在odftoolkit.org项目页面上了解更多信息,

因此,让我们从创建文档开始:

TextDocument doc = TextDocument.newTextDocument();

之后,让我们继续创建一个段落,如果它是Apache Poi(一个类似的库,但仅用于单词格式),那么它只有几行,并且这里的内容都非常简洁:

Paragraph subparagraphHeaderOne = doc.addParagraph(“”);

如果要在下一步中分配文本,则可以使用类似的构造:

Paragraph subparagrafFilial = paragraphHeader.addParagraph(null);

创建Apache poi段落的示例:

XWPFParagraph paragraphHeader = xwpfDocument.createParagraph();
   XWPFRun subpargraphHeader = paragraphHeader.createRun();
        subpargraphHeader.setText(“”);
        subpargraphHeader.addBreak();

就我个人而言,这种简洁让我着迷,但请继续。

为段落创建样式:

OdfOfficeStyles styles = doc.getOrCreateDocumentStyles ();
       OdfStyle style = styles.newStyle ( "Source Text", OdfStyleFamily.Paragraph );
          style.setProperty ( OdfParagraphProperties.VerticalAlign, "#middle");
          paragraph.getOdfElement().setStyleName("Source Text");

但是有一个小问题,根据官方文档,样式分配是这样发生的:

paragraph.setStyleName("Source Text")

图片

但不幸的是,这种方式无法正常工作,这需要花费一定数量的神经细胞和时间才能找到解决方案。

创建表:

Table TableOne = doc.addTable( , );

通过创建新段落可以使用单元格,也可以通过创建新段落直接使用单元格本身



Paragraph cellOne = Paragraph.newParagraph(subparagraphTableOne.getCellByPosition(0, 1));
 cellOne.appendTextContent("");

直接与单元格:

Cell cellOne = subparagraphTableOne.getCellByPosition(0, 0);
 cellOne.setStringValue("")

使用表格样式及其边框:

创建边框:

Border border= new Border(Color.WHITE, 2, StyleTypeDefinitions.SupportedLinearMeasure.PT);

第一个变量是要应用样式的边框的选择:

table.getRowByIndex(0).getCellByIndex(1).setBorders(StyleTypeDefinitions.CellBordersType.BOTTOM, border);

设置字体样式:

Font font = new Font("Times New Roman", StyleTypeDefinitions.FontStyle.REGULAR, 12);

我想结束这段简短的评论,如果项目对您感兴趣,那么odftoolkit.org项目网站上有使用此API的更高级指南。

我希望本文能帮助某人走简单的路。

All Articles