如果您要编写几个简单的报告,而您的用户使用的是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的更高级指南。我希望本文能帮助某人走简单的路。