Tag: apache poi

Apache POI:计算公式时出现exception

我在这里发布了很多问题并提到了POI文档,但我无法解决这个问题。 问题:当试图重新计算公式时,我得到一个例外。 式: =CONCATENATE(“#DFLT=”,COUNTIF(C5:C390,”=DEFAULTERS”),”; #NP=”,COUNTIF(C5:C390,”=NOT PAID”),”; #PCsh=”,COUNTIF(C5:C390,”=Paid Cash”),”; #PChk=”,COUNTIF(C5:C390,”=Paid Cheque”),”; #PNeft=”,COUNTIF(C5:C390,”=Paid Neft”)) 例外: 10-22 17:13:15.177: E/AndroidRuntime(26300): FATAL EXCEPTION: main 10-22 17:13:15.177: E/AndroidRuntime(26300): java.lang.IllegalArgumentException: Unexpected eval class (org.apache.poi.ss.formula.eval.MissingArgEval) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.eval.OperandResolver.coerceValueToString(OperandResolver.java:275) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.functions.TextFunction.evaluateStringArg(TextFunction.java:40) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.functions.TextFunction$8.evaluate(TextFunction.java:249) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:132) 10-22 17:13:15.177: E/AndroidRuntime(26300): at org.apache.poi.ss.formula.WorkbookEvaluator.evaluateFormula(WorkbookEvaluator.java:525) 10-22 17:13:15.177: E/AndroidRuntime(26300): […]

使用Apache POI将byteArray转换为XSSFWorkbook

我正在使用Apache POI,我正在尝试将xlsx文件作为HTTP请求发送并将其作为响应返回。 我正在使用jayway restassured来发出HTTP请求。 这是我发送请求的代码部分 File file = new File(“path”); String response = given().multipart(file).when().post(“URL”).getBody().asString(); byte[] bytes = response.getBytes(“ISO-8859-1”); InputStream stream = new ByteArrayOutputStream(bytes); try { XSSFWorkbook workbook = new XSSFWorkbook(stream); } catch(Exception e){ e.printStackTrace(); } 以下是为请求生成响应的代码 XSSFWorkbook workBook; //this workBook has the workbook sent as HTTP request //code to make changes in workBook ByteArrayOutputStream outStream […]

java.lang.OutOfMemoryError:加载xlsx文件时超出了GC开销限制

我理解错误意味着什么,我的程序消耗了太多的内存,并且很长一段时间它没有恢复。 当发生内存问题时,我的程序只读取6,2Mb xlsx文件。 当我尝试监视程序时,内存消耗很快达到1,2Gb,然后崩溃。 读取6,2Mb文件时如何达到1,2Gb? 有没有办法以块的forms打开文件? 这样它就不必加载到内存中了? 或任何其他解决方案? 正是这部分导致了它。 但既然它是一个图书馆,难道不应该以某种方式处理它吗? 它只有20万行,只有3列。 对于未来,我需要它与约。 1百万条记录和更多列… 码: Workbook myWorkBook; Sheet mySheet; if (filePath.contains(“.xlsx”)) { // Finds the workbook instance for XLSX file myWorkBook = new XSSFWorkbook(fis); // Return first sheet from the XLSX workbook mySheet = myWorkBook.getSheetAt(0); myWorkBook.close(); // Should I close myWorkBook before I get data from […]

如何使用Apache POI操纵注释的内容

我想在Docx文档中找到一条评论(不知何故,通过作者或ID …),然后创建新内容。 在这个答案的帮助下,我能够创建一个评论 ,但没有操纵的运气。

在hashmap中读取excel文件时for循环出错

我试图在hashmap中访问excel文件,但是i = 5 colNum得到8,所以输出没有按预期得到。 下面是代码使用hashmap读取此excel文件,一旦questionType匹配,我想只存储相应的标签和值,然后传递给相应的类 public class HashMapObjectTest { static HSSFSheet sheet; static HSSFRow row; private static MissingCellPolicy xRow; static DataFormatter df = new DataFormatter(); @Test public void getMapData() throws Exception { File src=new File(“D:\\Projects\\TestData_peerTest.xls”); FileInputStream fis=new FileInputStream(src); HSSFWorkbook wb=new HSSFWorkbook(fis); sheet = wb.getSheetAt(0); DataFormatter df = new DataFormatter(); Row row; //String value1 = null; […]

如何使用Apache POI XSSF创建从右到左对齐的工作表

我正在尝试使用Apache POI在Excel文件中创建工作表。 由于它是Excel 2007,我正在使用XSSF,我正在寻找一种方法来使表格从右到左对齐。 在HSSF中有一个方法org.apache.poi.hssf.usermodel.HSSFSheet.setRightToLeft(boolean) ,但我在org.apache.poi.xssf.usermodel.XSSFSheet找不到它。 我正在使用Apache POI 3.7

java POI XSSF FormulaEvaluator

我保存新的Excel文件时遇到问题。 我希望它在保存时公式计算自己,但目前它只是在excel文件中返回一个字符串。 公式是正确的。 我FormulaEvaluator地知道要让FormulaEvaluator工作。 这是我输入返回字符串的公式的地方: dataRow1.createCell((short)5).setCellValue(“=VLOOKUP(A”+rowCountVlookup+”,’C:\\Users\\Admin\\Documents\\JCreator LE\\MyProjects\\WordCount\\classes\\[Pricing.xlsx]Sheet1′!$B$3:$E$41,4, FALSE)*E”+rowCountVlookup+””); 任何帮助将非常感激。

如何在Excel POI中将Excel单元格格式化为日期,与Excel中的“格式刷”操作一样

我是Apache POI的新手,我想知道怎么做Format Painter操作将一个单元格格式化为Date格式,每次当我尝试复制单元格的日期格式时,在POI中,它只能给我数字,我不知道我该如何保留日期格式? // Get source cell type and style CellType type_from = cell_from.getCellTypeEnum(); CellStyle style_from = cell_from.getCellStyle(); // Get source cell data format short df = style_from.getDataFormat(); // Change dest cell cell type, set format on it cell_to.setCellType(type_from); CellStyle style_to = cell_to.getCellStyle(); style_to.setDataFormat(df); cell_to.setCellStyle(style_to); 我需要更改其他一些样式,如边框,背景颜色,字体斜体等。 你能给出一个例子:创建一个xlsx文件,将1A设置为数字(比如10),将2A设置为文本(“10”)1B到日期(01/12/2018),2B到10000(只是一个数字),然后尝试将2A转换为带有字体16和绿色单元格背景的数字,并将2B转换为日期,格式与1B相同但斜体字体。

多个样式到Excel单元格POI

我想将颜色应用于单元格以及格式化单元格值(例如日期,金额)。但是当我应用两个单元格样式时,只有最后一个样式应用于单元格。 //before this colourCellStyle and dateCellStyle are the formatting style cell9 = row.createCell(9); cell9.setCellValue(getLoadDate()); cell9.setCellStyle(colourCellStyle); cell9.setCellStyle(dateCellStyle);

apache poi在word文档中添加表

我有Java代码使用Apache POI创建表和一些文本到word文档,但它在最后一个文档中添加了表。 我想写一些文本,然后添加表并再次写一些文本。 目前它添加表格第一个和最后一个文档添加2个测试(Hi&Bye) 我的代码: public static void main(String[] args)throws Exception { //Blank Document XWPFDocument document= new XWPFDocument(); //Write the Document in file system FileOutputStream out = new FileOutputStream( new File(“create_table.docx”)); //create table XWPFTable table = document.createTable(); XWPFParagraph para = document.createParagraph(); XWPFRun run = para.createRun(); run.setText(“Hi”); //create first row XWPFTableRow tableRowOne = table.getRow(0); tableRowOne.getCell(0).setText(“col one, […]