Tag: apache poi

超过了Apache POI的GC开销限制

我有13个.xlsx文件,每个文件大约有1000行。 现在我想用一张表将它合并到一个.xlsx文件中。 我使用这里的代码http://blog.sodhanalibrary.com/2014/11/merge-excel-files-using-java.html#.Vi9ns36rSUk 。 这是我的代码(几个更改,addSheet方法不变) try { FileInputStream excellFile1 = new FileInputStream(new File("tmp_testOut1000.xlsx")); XSSFWorkbook workbook1 = new XSSFWorkbook(excellFile1); XSSFSheet sheet1 = workbook1.getSheetAt(0); for(int i = 2; i < 14; i++){ FileInputStream excellFile2 = new FileInputStream(new File("tmp_testOut" + i + "000.xlsx")); XSSFWorkbook workbook2 = new XSSFWorkbook(excellFile2); XSSFSheet sheet2 = workbook2.getSheetAt(0); System.out.println("add " + i); addSheet(sheet1, sheet2); […]

Apache POI – 在Excel中设置左/右打印边距

这是可能的 – 与Apache POI – 为Excel表单设置左边或右边的打印边距? 默认的边距非常大。 我不能在XSSFPrintSetup中看到setLeftMargin和setRightMargin,但只能看到页眉和页脚: XSSFPrintSetup printSetup = (XSSFPrintSetup) sheet.getPrintSetup(); printSetup.setHeaderMargin(0.5D); printSetup.setFooterMargin(0.5D); 有什么友善的朋友可以帮我一下吗?

如何在Excel中使用HSSFSheet Apache POI创build具有多种样式的单元格?

我正在为excel创build一个导出文档的脚本。 我发现了一些困难,比如:我想通过合并很less的单元格来获得单元格的值,比如“ Name: Mark DOB: 11-11-2014”。 你能帮我解决这个问题吗? 提前致谢 !!

xssf如何获取任何东西作为string

我尝试使用apache poi xssf将excel文件parsing为XML。 现在有一个单元格,不知道里面有什么,我只想从中得到一个string。 但是当我使用 cell.getStringCellValue() 它抛出一个exception,这是不是很令人惊讶,因为它是这样logging的。 所以我通过检查天气是一个数字或文本单元格来build立我的方式。 但如何处理公式单元格。 他们可能包含数字 = A2 + B2 什么给我总和(例如4)或对另一个文本的引用 = C2 什么可能引用像“汉斯”的文字。 我怎么能知道我的单元格是什么,以及如何从中得到一个string?

使用Apache POI创build和更改Excel表

是否有可能使用Apache POI创build和更改Excel表格? 有一个代表Excel表的类( http://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFTable.html ),有两个方法createTable和getTables( http:// poi。 apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFSheet.html#createTable() ),但是API并没有解释如何操作XSSFTable对象来select表格的单元格范围

java apache poi移动行运行到运行时exception

我有一个简单的Excel工作表,基本的Excel公式,如总和,从另一个单元格的价值检索。 现在,我想在两条现有的行之间插入一个空白行(我已经看过如何在HSSF(Apache POI)现有的Excel中的两行之间插入一行 ,但是我遇到了一些奇怪的事情错误)。 所以我试着这样做: worksheet.shiftRows(15,16,2); 我得到这个回报: Exception in thread "main" java.lang.RuntimeException: not implemented yet at org.apache.poi.xssf.usermodel.XSSFEvaluationWorkbook.getExternalSheetIndex(XSSFEvaluationWorkbook.java:127) at org.apache.poi.ss.formula.FormulaParser.createAreaRefParseNode(FormulaParser.java:615) at org.apache.poi.ss.formula.FormulaParser.parseRangeable(FormulaParser.java:462) at org.apache.poi.ss.formula.FormulaParser.parseRangeExpression(FormulaParser.java:268) at org.apache.poi.ss.formula.FormulaParser.parseSimpleFactor(FormulaParser.java:1119) at org.apache.poi.ss.formula.FormulaParser.percentFactor(FormulaParser.java:1079) at org.apache.poi.ss.formula.FormulaParser.powerFactor(FormulaParser.java:1066) at org.apache.poi.ss.formula.FormulaParser.Term(FormulaParser.java:1426) at org.apache.poi.ss.formula.FormulaParser.additiveExpression(FormulaParser.java:1526) at org.apache.poi.ss.formula.FormulaParser.concatExpression(FormulaParser.java:1510) at org.apache.poi.ss.formula.FormulaParser.comparisonExpression(FormulaParser.java:1467) at org.apache.poi.ss.formula.FormulaParser.unionExpression(FormulaParser.java:1447) at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:1568) at org.apache.poi.ss.formula.FormulaParser.parse(FormulaParser.java:176) at org.apache.poi.xssf.usermodel.helpers.XSSFRowShifter.updateNamedRanges(XSSFRowShifter.java:116) at org.apache.poi.xssf.usermodel.XSSFSheet.shiftRows(XSSFSheet.java:2363) at org.apache.poi.xssf.usermodel.XSSFSheet.shiftRows(XSSFSheet.java:2306) at com.shel.myProgram.workbook.copyAndInsert(workbook.java:120) at com.shel.myProgram.workbook.test(workbook.java:111) at com.shel.myProgram.driver.main(driver.java:24) […]

使用POI编写xlsx文件

我有一个应用程序,生成一个XSSFWorkbook并填充预算数据。 当它完成它写出一个文件: try { FileOutputStream fileOut = new FileOutputStream("/path/to/my/file/myfilename.xlsx"); wb.write(fileOut); fileOut.close(); } catch (IOException ioe) { logger.error("Error writing spreadsheet", ioe); } 到现在为止还挺好。 我正在一个Linux机器上工作,但输出是针对Windows机器上的人的,所以它必须是一个xlsx。 工作簿按预期生成,当我在LibreOffice中打开它时,它看起来和我所期望的完全一样。 然后我把它发给我的同事,当他们在Excel中打开它时,大部分的单元格格式都不见了。 货币格式的单元格只是原始数字。 格式化为百分比的单元格(大多数)只是原始数字。 任何想法我可能做错了什么? 谢谢! 其中一种单元格样式: XSSFCellStyle percent = wb.createCellStyle(); percent.setDataFormat(wb.createDataFormat().getFormat("0.0%")); 后来用在这里: header.createCell(cn).setCellValue("%"); sheet.setDefaultColumnStyle(cn, percent); 有一堆这些,但我怀疑我做错了一个是与他们所有人的同样的问题,所以我只是提出一个,而不是200行他们。 ;) 更新 :在rgettman的build议,我尝试创build后,设置每个单元格的样式。 这工作。 感谢rgettman!

JXL和Apache POIparsing优于附加的图像对象

我曾尝试使用JXL和Apache POI从Excel文件加载数据,直到现在JXL机制工作正常。 即使我在文件中embedded图像。 我收到一个来源不会parsing的文件,我得到以下与POIexception Exception in thread "main" org.apache.poi.hssf.record.RecordInputStream$LeftoverDataException: Initialisation of record 0xE2 left 2 bytes remaining still to be read. at org.apache.poi.hssf.record.RecordInputStream.hasNextRecord(RecordInputStream.java:124) at org.apache.poi.hssf.record.RecordFactory.createRecords(RecordFactory.java:402) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:277) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:202) at org.apache.poi.hssf.usermodel.HSSFWorkbook.<init>(HSSFWorkbook.java:184) at testXlsParsers.main(TestXlsParsers.java:19) 和jxl我得到一个索引越界 Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.RangeCheck(ArrayList.java:546) at java.util.ArrayList.get(ArrayList.java:321) at jxl.read.biff.WorkbookParser.getSheet(WorkbookParser.java:247) at ParserXLS.parse(ParserXLS.java:27) at ParserXLS.main(ParserXLS.java:46) 该文件加载到Excel中,但没有到开放式办公室,我可以看到在原始数据唯一的事情是Adobe XMP核心4.1相关的对象…这似乎是问题的原因,如果我删除它的图像工作正常…如果我坚持另一个JPG的罚款。 […]

如何使用Apache POIsearch​​特定date的Excel工作表?

我一直使用给出的示例代码来search工作表的内容: Sheet sheet1 = wb.getSheetAt(0); for (Row row : sheet1) { for (Cell cell : row) { CellReference cellRef = new CellReference(row.getRowNum(), cell.getCellNum()); System.out.print(cellRef.formatAsString()); System.out.print(" – "); switch(cell.getCellType()) { case Cell.CELL_TYPE_STRING: System.out.println(cell.getRichStringCellValue().getString()); break; case Cell.CELL_TYPE_NUMERIC: if(DateUtil.isCellDateFormatted(cell)) { System.out.println(cell.getDateCellValue()); } else { System.out.println(cell.getNumericCellValue()); } break; case Cell.CELL_TYPE_BOOLEAN: System.out.println(cell.getBooleanCellValue()); break; case Cell.CELL_TYPE_FORMULA: System.out.println(cell.getCellFormula()); break; default: System.out.println(); } […]

上传+使用POI在jsp中读取excel文件

我想在JSP中读取excel文件,为此我首先使用Web应用程序项目将file upload到名为uploads的 D分区的文件夹中,然后尝试使用另一个java projet 读取excel上传的文件 。 这两个代码正在工作。这是通过Web应用程序项目(JSP和SERVLET)在特定文件夹中上传的代码: 图书馆 公地file upload-1.2.2.jar 公地IO-2.1.jar 的index.jsp <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <title>Upload File</title> </head> <body> <form action="UploadFile" method="post" enctype="multipart/form-data"> Select File : <input type="file" name="filetoupload"> <br/> <input type="submit" value="Upload File"> </form> </body> </html> UploadServlet.java(Servlet的) import java.io.*; import java.io.IOException; import java.io.PrintWriter; import java.util.Date; import java.util.Iterator; import java.util.List; import […]