Tag: apache poi

.xls使用java和POI APACHE转换为xlsx

我正在尝试使用POI.APACHE来编辑java中的excel文件。 我必须将.xls转换为.xlsx,因为我需要将文件发送到sharepoint。 这就是为什么它不能用不同的扩展名重命名。 我怎么会这样呢? 我在他们的网站上找不到任何例子。 谢谢

Apache POI工作簿的默认样式

我正在尝试使用Apache POI更改整个Excel工作簿( XSSF )的默认单元格样式。 这应该应用于用户可能创建的新单元格(在POI保存工作簿之后)。 我试图通过调用workbook.getCellStyleAt(0)来实现这一点 – 我理解这是workbook.getCellStyleAt(0)的默认样式 – 然后通过将此样式修改为我想要的新默认样式。 当我读入现有的XSLX文件(“模板”文件)并修改默认样式时,这种方法有效。 但是当我使用POI从头创建一个新的XSLX文件时,它不起作用。 当逐步使用调试器时,我可以看到,当使用“模板”文件时,在索引0处为单元格样式分配了一个“主题”(可能是因为模板文件最初是使用Excel创建的)。 但是当从头开始创建文件(使用POI )时,索引0处的单元格样式具有空主题。 (这可能是为什么这种方法使用一种方法而不是另一种方法的因素。) 有关如何可靠地更改工作簿( XSSF )的默认单元格样式的任何建议,无论最初如何创建工作簿? 谢谢!

Apache POI货币数据格式

我尝试使用Apache POI将数字转换为欧洲货币风格 HSSFDataFormat cf = workbook.createDataFormat(); currencyCellStyle = workbook.createCellStyle(); currencyCellStyle.setDataFormat(cf.getFormat(“#.###,#0”)); 我有例如2400和2.4 我想要的是2400,00和2,40。 但POI给了我2400,0和2,40。 当我尝试将其更改为 currencyCellStyle.setDataFormat(cf.getFormat(“#.###,00”)); 我得到的结果是2400,00和2,400。 那也不是我想要的。 有可能让两个值都正确吗? 感谢和问候

使用JAVA中的Apache POI和iText从Word(DOC)创建PDF

我试图从* .doc文档生成PDF文档。 直到现在,感谢stackoverflow我已成功生成它但有一些问题。 我的示例代码生成的pdf没有格式和图像,只有文本。 该文档包括未包含在PDF中的空格和图像。 这是代码: in = new FileInputStream(sourceFile.getAbsolutePath()); out = new FileOutputStream(outputFile); WordExtractor wd = new WordExtractor(in); String text = wd.getText(); Document pdf= new Document(PageSize.A4); PdfWriter.getInstance(pdf, out); pdf.open(); pdf.add(new Paragraph(text));

添加大型查询时,如何修复SpreadSheetAddRows函数崩溃?

编辑3:感谢@Leigh的帮助,我已将问题缩小到查询中的日期列。 使用原始代码集和POI时,当SpreadSheetAddRows()尝试添加包含类似日期的单元格的非常大的查询时,页面崩溃。 我在这里做了一个错误报告: https : //bugbase.adobe.com/index.cfm?event = bug &id = 3432184 。 我有一个查询,我添加到一个spreadhseet对象,当查询具有非常多的行(在此示例中为18583)时,该对象似乎出错。 确切的错误如下: java.lang.ArrayIndexOutOfBoundsException: -32735 at java.util.ArrayList.get(ArrayList.java:324) at org.apache.poi.hssf.model.WorkbookRecordList.get(WorkbookRecordList.j ava:50) at org.apache.poi.hssf.model.Workbook.getExFormatAt(Workbook.java:787) at org.apache.poi.hssf.usermodel.HSSFCell.getCellStyle(HSSFCell.java:901 ) at org.apache.poi.hssf.usermodel.HSSFSheet.autoSizeColumn(HSSFSheet.java :1727) at coldfusion.excel.Excel.autoResize(Excel.java:1246) at coldfusion.excel.Excel.autoResize(Excel.java:1240) at coldfusion.excel.Excel.addRows(Excel.java:1214) at coldfusion.runtime.CFPage.SpreadSheetAddRows(CFPage.java:7089) at coldfusion.runtime.CFPage.SpreadSheetAddRows(CFPage.java:7076) 这是相关的代码: 编辑:我之前使用cfspreadsheet成功,但它不会生成带有标题的电子表格(并且它还有需要创建临时文件来提供服务的缺点。) EDIT2:关注@Leigh建议我更新了CF9 / lib文件夹中的POI。 现在错误已更改为以下内容: 给出以下消息:org.apache.poi.hssf.util.HSSFColor.getIndexHash()Ljava / util /哈希表; 错误代码: java.lang.NoSuchMethodError: org.apache.poi.hssf.util.HSSFColor.getIndexHash()Ljava/util/Hashtable; at coldfusion.excel.Excel.getHSSFColor(Excel.java:2094) at […]

使用Apache POI读取Excel .XLSX时出错

我正在使用Apache POI 3.8库来读取Web应用程序中的XLSX文件。 以下代码在Java控制台应用程序中运行良好: InputStream inputFS = new FileInputStream(“test.xlsx”); Workbook workbook = new XSSFWorkbook(inputFS); // below exception is thrown on this line Sheet sheet = workbook.getSheetAt(0); 但在Web应用程序中使用时会抛出“读取错误”。 下面粘贴了堆栈跟踪的相关摘录: java.io.IOException: Read error at java.io.FileInputStream.readBytes(Native Method) ~[na:1.6.0_31] at java.io.FileInputStream.read(Unknown Source) ~[na:1.6.0_31] at java.io.FilterInputStream.read(Unknown Source) ~[na:1.6.0_31] at java.io.PushbackInputStream.read(Unknown Source) ~[na:1.6.0_31] at java.util.zip.ZipInputStream.readFully(Unknown Source) ~[na:1.6.0_31] at java.util.zip.ZipInputStream.readLOC(Unknown Source) ~[na:1.6.0_31] […]

在java中将图像写入pdf文件

我正在编写一个代码,将Microsoft power-point(ppt)幻灯片转换为图像,并将生成的图像写入pdf文件。 以下代码生成并将图像写入pdf文件,但我面临的问题是,当我将图像写入pdf文件时,它的大小超过了pdf页面大小,我只能查看75%的图像rest是不可见的。 这里需要注意的另一件事是,pdf文件中的书写图像看起来像缩放或扩展。 看一下下面的代码片段: for (int i = 0; i < slide.length; i++) { BufferedImage img = new BufferedImage(pgsize.width, pgsize.height, BufferedImage.TYPE_INT_RGB); Graphics2D graphics = img.createGraphics(); graphics.setPaint(Color.white); graphics.fill(new Rectangle(0, 0, pgsize.width, pgsize.height)); slide[i].draw(graphics); fileName="C:/DATASTORE/slide-"+(i+1)+".png"; FileOutputStream out = new FileOutputStream(fileName); javax.imageio.ImageIO.write(img, "png", out); out.flush(); out.close(); com.lowagie.text.Image image =com.lowagie.text.Image.getInstance(fileName); image.setWidthPercentage(40.0f); doc.add((image)); } doc.close(); } catch(DocumentException de) { […]

HSSFWorkbook vs XSSFWorkbook vs SXSSFWorkbook – Apache-poi

HSSFWorkbook vs XSSFWorkbook以及XSSFWorkbook和SXSSFWorkbook的优缺点 ?

如何让用户下载我的文件? (Java,MVC,Excel,POI)

我正在使用Struts2,Spring和Hibernate。 我用POI编写了一个名为test.xls的简单Excel文件。 当我运行该操作时,它的工作原理是因为test.xls出现,但是在我的tomcat文件夹中。 我希望该文件可以在我的jsp页面上下载。 如何让用户下载.xls文件? 相反,我该如何称呼该路径? 对不起,如果答案很明显,我是新手。 我知道它可能与ServletContext或HttpServletRequest有关吗? [编辑]由于以下答案我得到了它。 这是工作代码: private InputStream excelStream; public String export(){ //Create excelfile HSSFWorkbook workbook = new HSSFWorkbook(); FileOutputStream file = null; try{ file = new FileOutputStream(“poi-test.xls”); } catch(IOException e){ e.printStackTrace(); } //Populate workbook with all the excel stuff … //Write to file ByteArrayOutputStream baos = new ByteArrayOutputStream(); try{ workbook.write(file); […]

如何使用apache poi在.xlsx文件中检查单元格文本是否删除

我需要检查.xlsx文件(Microsoft Excel文件)中单元格的文本格式是否通过或不使用Apache POI库。 看下面的图片 请检查此图片! 我需要检查B3 Cell文本是否通过 。