Tag: apache poi

使用Apache POI访问数据透视表的字段设置

我正在创建一个工作簿,其中包含来自数据源的工作表填充数据,然后创建第二个工作表,其中包含该数据的数据透视表视图。 一切正常,但我似乎无法改变数据透视表的默认外观。 我正在尝试获取设置(行标签 – >从列表中单击一个 – >字段设置 – >小计 – >无和行标签 – >从列表中单击一个 – >字段设置 – >在创建数据透视表时检查布局和打印 – >’以表格forms显示项目标签’但在POI中找不到句柄/标记。 尝试在pivotTable.getCTPivotTableDefinition()或pivotTable.getCTPivotTableDefinition()。getPivotTableStyleInfo()下找到一些东西,但没有锁定。 请告知是否有方法在创建数据透视表期间使用poi设置这些设置,而不是在遵循括号中提到的步骤之后。 这是我的数据透视表代码: XSSFSheet sheet = (XSSFSheet)wb.createSheet(“Data”); … … //filling data sheet, skipping this part as it’s not relevant … XSSFSheet pivotSheet = (XSSFSheet)wb.createSheet(“Pivot Table”); AreaReference source = new AreaReference(sheet.getSheetName()+”!A$1:W$”+String.valueOf(sheet.getLastRowNum())); CellReference position = new CellReference(“A3”); XSSFPivotTable […]

使用POI写入现有xls文件

场景大致是这样的: 我有一个java程序,有几个方法被随机调用。 第一种方法将使用apache POI创建一个xls文件,并将列出列。 所有其他方法都必须将记录写入此文件。 最后的方法将首先邮寄创建的xls,然后删除xls。 对于上述情况,以下方法是正确的: 1)创建文件并将标题名称放在第一个方法中: Workbook wb = new HSSFWorkbook(); CreationHelper createHelper = wb.getCreationHelper(); Sheet sheet = wb.createSheet(“First Sheet”); Row row = sheet.createRow((short)0); row.createCell(1).setCellValue(createHelper.createRichTextString(“First Column”)); row.createCell(2).setCellValue(createHelper.createRichTextString(“Second Column”)); row.createCell(3).setCellValue(createHelper.createRichTextString(“Third Column”)); // Write the output to a file FileOutputStream fileOut = new FileOutputStream(“workbook.xls”); wb.write(fileOut); fileOut.close(); 2)在剩下的方法中记录: 我不确定这里的代码。 我知道我可以使用getRowCount方法到达工作表的末尾,然后添加新行。 但我找不到任何示例代码。 另外,如何访问现有的xls文件? 3)在最后一种方法中,文件将被邮寄然后删除。 在删除文件之前是否需要执行任何其他步骤?

如何从Apache POI获取脚注和段落?

我有代码从Apache POI中的.doc文件中获取段落,但我也想得到脚注。 另外,这是获取段落的唯一方法吗? 代码到目前为止: InputStream stream = … HWPFDocument document = new HWPFDocument(stream); Range range = document.getRange(); StyleSheet stylesheet = document.getStyleSheet(); for (int i = 0; i < range.numParagraphs(); i++) { Paragraph paragraph = range.getParagraph(i); String text = paragraph.text(); } 有任何想法吗?

XPI的POI – 在富文本字段中将Word文档另存为附件

我正在使用OpenNTF POI 4 XPages插件。 这非常适合生成Word文档。 现在,在生成Word文档之后,我想创建一个新的响应文档,并将word文档作为附件存储在此响应文档的富文本字段中。 这是我的代码(在POI 4 XPages小部件的poi postGenerationProcess属性中): var doc:NotesDocument = currentDocument.getDocument(); var rdoc:NotesDocument = database.createDocument(); rdoc.appendItemValue(“Form”, “frmRespTempl”); rdoc.appendItemValue(“Subject”, “Embedded Word Document”); var rtitem:NotesRichTextItem = rdoc.createRichTextItem(“Body”); rtitem.embedObject(xwpfdocument); rdoc.makeResponse(doc); rdoc.save(); 不幸的是,这给了我错误: com.ibm.jscript.InterpretException: Script interpreter error, line=13, col=8: [TypeError] Method NotesRichTextItem.embedObject(org.apache.poi.xwpf.usermodel.XWPFDocument) not found, or illegal parameters 我有什么技巧可以达到这个目的吗? 实施Knut Hermann下面提出的建议,我得到: POI 4 XPages – >错误 错误:Documentgeneration […]

如何使用apache poi为3个单元格设置注释

我想使用Apache POI为3个excel单元格设置注释。 这是我的源代码: import java.io.*; import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.util.HSSFColor; public class CellComments { public static void main(String[] args) throws IOException { HSSFWorkbook wb = new HSSFWorkbook(); HSSFSheet sheet = wb.createSheet(“Cell comments in POI HSSF”); HSSFPatriarch patr = sheet.createDrawingPatriarch(); HSSFCell cell1 = sheet.createRow(3).createCell((short)1); cell1.setCellValue(new HSSFRichTextString(“Hello, World”)); //anchor defines size and position of the comment in worksheet […]

如何在为doc文件使用POI时解决NoSuchMethodError

当我试图实现以下任何代码时 File someFile = new File(“D:\\arz.doc”); InputStream inputStrm = new FileInputStream(someFile); HWPFDocument wordDoc = new HWPFDocument(inputStrm); System.out.println(wordDoc.getText()); 要么: POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(“D:\\arz.doc”)); WordExtractor extractor = new WordExtractor(fs); String wordText = extractor.getText(); ,错误消息总是如下: Exception in thread “main” java.lang.NoSuchMethodError: org.apache.poi.poifs.filesystem.POIFSFileSystem.getRoot()Lorg/apache/poi/poifs/filesystem/DirectoryNode; at org.apache.poi.hwpf.HWPFDocument.(HWPFDocument.java:186) at DB_connect.dissertation_araalz.ParseWodDocFile.main(ParseWodDocFile.java:29) Java Result: 1 BUILD SUCCESSFUL (total time: 3 seconds) 你能帮我解决这个问题吗?

JAVA中的Excel到Json转换器

我试图将excel数据转换为JSON格式。 我成功通过读取行​​和列来转换Excel数据并将数据设置为列表,然后将该List转换为JSON格式。 但是,我坚持下一级JSON,格式就像 这是我使用的代码,但尚未开始如何使像3列数据这样的嵌套数据应该像上面的图像一样放在一个数组中。 Pojo类 : public class Products implements Serializable{ @Id @Column(name=”ID”) private String id; @Column(name=”PRODUCTID”) private String productId; @Column(name=”NAMEID”) private String nameId; @Column(name=”NAME”) private String name; @Column(name=”P_DESC”) private String desc; @Column(name=”DIMENSION”) private String dimension; @Column(name=”CATEGORY”) private String category; @Column(name=”SUB_CATEGORY”) private String subcategory; @Column(name=”CATEGORYID”) private String categoryId; @Column(name=”SUBCATEGORYID”) private String subcategoryId; @Column(name=”TAGS”) private String […]

如何使用poi jar读取java api中的docx文件内容

我已经阅读了doc文件,现在我正在尝试阅读docx文件内容。 当我搜索示例代码时,我发现很多,没有任何效果。 检查代码以供参考…… import java.io.*; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; public class createPdfForDocx { public static void main(String[] args) { InputStream fs = null; Document document = new Document(); XWPFWordExtractor extractor = null ; try { fs = new FileInputStream(“C:\\DATASTORE\\test.docx”); //XWPFDocument hdoc=new XWPFDocument(fs); XWPFDocument hdoc=new XWPFDocument(OPCPackage.open(fs)); //XWPFDocument hdoc=new XWPFDocument(fs); extractor […]

是否有支持Microsoft Office和Open Office的Java库?

由于Apache POI支持Microsoft Office并且JExcelApi支持Open Office,是否有支持Microsoft Office和Open Office的Java库? 注意:在pom.xml文件中,我们使用POI和JExcel实用程序,以便分别从Microsoft Office和Open Office中的Excel工作表中获取/读取数据。 所以我的问题是:有没有支持两者的图书馆?

计算Word文档中的页面

我正在尝试使用java计算word文档中的页面。 这是我的实际代码,我正在使用Apache POI库 String path1 = “E:/iugkh”; File f = new File(path1); File[] files = f.listFiles(); int pagesCount = 0; for (int i = 0; i < files.length; i++) { POIFSFileSystem fis = new POIFSFileSystem(new FileInputStream(files[i])); HWPFDocument wdDoc = new HWPFDocument(fis); int pagesNo = wdDoc.getSummaryInformation().getPageCount(); pagesCount += pagesNo; System.out.println(files[i].getName()+":\t"+pagesNo); } 输出是: ten.doc: 1 twelve.doc: 1 […]