Tag: apache

读取多个单元格内的单个值的Excel文件中的值

我需要从Java中提取数据,这通常不是问题。 我有一个特殊的情况,我找不到一个好的页面。 我有一个值,但这个值是在4行。 例如, value = 25 ,但A1 , A2 , A3和A4一起显示该值。 Apache POI版本是3.6。 我找不到一个好方法来做到这一点。 有人能指点我吗? 显然row.hasNext()在这里不起作用。 有没有方法或方法?

使用Apache POI及其名称获取Excel公式的内容

问题是我如何才能通过名字获得一个公式的内容。 在Excel中,您可以使用公式名称对表进行分组。 我想用Apache POI来获取这样一个名为table的公式的内容。 所以即使表扩展,我也总是得到最新的数据。 因为名字不会改变。 我做了一些编码,但到目前为止,我只能获得一张表的所有内容,而不是公式名的表。 我的代码在下面,谢谢。 package getTablesPOI; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.usermodel.WorkbookFactory; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Iterator; public class readExcel { // Creates a new instance of POIExcelReader public readExcel() { } /** * The main […]

Apache POI&SXSSF:行数始终为0

我使用SXSSFWorkbook和SXSSFSheet对象。 我能够成功写入Excel文件: FileOutputStream fos = new FileOutputStream(fileName); wb.write(fos); fos.close(); wb.dispose(); 写入文件后,我正在加载/读取它的进一步更改。 这是问题,当我尝试获取getLastRowNum()的行数时,我总是得到0作为结果。 这是一段代码: SXSSFWorkbook wb = null; try { wb = new SXSSFWorkbook(new XSSFWorkbook(new FileInputStream(fileName))); } catch (FileNotFoundException e) {e.printStackTrace(); } catch (IOException e) {e.printStackTrace();} SXSSFSheet sheet = wb.getSheet(sheetName); System.out.println(sheet.getLastRowNum()); 结果是0! 我尝试使用迭代器创build自己的方法,但是这给了我相同的结果。 我没有任何错误消息,如果检查工作表的名称(sheet.getSheetName()),它将返回正确的名称,但不是正确的行数,尽pipeExcel文件有很多简单的行。

Excel工作表的单元格types显示为实际上是文本types的数字

我正在使用apache-poi-3.9来处理Excel文档。 我在TEXTtypes的文档中有一个单元格(单元格值为445)。 但是当我检查Java中的单元格types时,它显示NUMERIC。 有没有办法像excel文档中那样获取单元格types。 注意:单元格被定义为TEXT。 它可能包含字母数字值或数字值,但我需要该types为文本。

Apache POI错误加载XSSFWorkbook类

我试图编写一个与Excel文档一起工作的程序,但HSSF格式对于我的要求来说太小了。 我试图移动到XSSF,但是当我尝试使用它时,我总是收到错误。 我设法通过在我的程序中添加xmlbeans-2.3.0.jar和dom4j-1.6.jar来解决前两个问题,但是现在出现了这个错误,这似乎没有通过添加可用的Apache commons jar来解决Apache网站。 错误如下: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/collections4/ListValuedMap at hot.memes.ExcelCreator.main(ExcelCreator.java:66) Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections4.ListValuedMap at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) … 1 more

inferSchema使用spark.read.format(“com.crealytics.spark.excel”)推断datetypes列的double

我正在PySpark( Python 3.6和Spark 2.1.1 )上工作,并尝试使用spark.read.format(“com.crealytics.spark.excel”)从excel文件中获取数据,但是推断出datetypes为double柱。 例: input – df = spark.read.format("com.crealytics.spark.excel").\ option("location", "D:\\Users\\ABC\\Desktop\\TmpData\\Input.xlsm").\ option("spark.read.simpleMode","true"). \ option("treatEmptyValuesAsNulls", "true").\ option("addColorColumns", "false").\ option("useHeader", "true").\ option("inferSchema", "true").\ load("com.databricks.spark.csv") 结果: Name | Age | Gender | DateOfApplication ________________________________________ X | 12 | F | 5/20/2015 Y | 15 | F | 5/28/2015 Z | 14 | F | 5/29/2015 打印架构 […]

用java apache在excel中添加单元格

我正在阅读一个已经存在的Excel文件,并尝试添加某些单元格(C4-C15)。 我有难以通过Java操纵文件。 我正在使用Apache poi,并希望任何帮助或方向。

在线程“main”中获取exceptionjava.lang.OutOfMemoryError:Java堆空间

如果我把超过5个Excel文件在一个文件夹我得到这个 java.lang.OutOfMemoryError: Java heap space. 完全我有40个Excel文件,每个文件可能包含5到10张。 我的代码将找出excel文件中的错误并将其写入Error.txt文件中。 public class Hvd { public static int getExcelColumnNumber(String column) { int result = 0; for (int i = 0; i < column.length(); i++) { result *= 26; result += column.charAt(i) – 'A' + 1; } return result; } public static String getExcelColumnName(int number) { final StringBuilder sb = […]

如何获取ListAdapter的值到工作簿单元格

我正在从我的应用程序创build一个工作簿。 我从sqlite获取数据的Arraylist,然后使用ListAdapter来查看它。 我可以保存到工作簿就好了。 这些行显示数据,但它们显示的是来自查询的原始数据,如Personfirstname = John,而Personlastname = Doe全部在一个单元格中。 那不是我想要的。 我想要的是在单元格1中看到John,在单元格2中看到John,在单元格2的第2行看到Jane,在行2的单元格2中看到了doe。我知道我需要对ListAdapter做些什么,我只是不知道该怎么做做。 这是我的代码(我使用apache.poi jar) ArrayList<HashMap<String, String>> test = controller .getAllpersons(value1,value2); ListAdapter adapter1 = new SimpleAdapter(Persons.this, test, R.layout.rowsales, new String[] { "NamesId", "personfirstname","personlastname }, new int[] {R.id.NamesId, R.id.personfirstname,R.id.personlastname}); for (int i = 0; i < test.size(); i++) { Row row2 = sheet1.createRow((short) i+3); c = row2.createCell(0); System.out.println(test.get(i)); c.setCellValue(test.get(i).toString()); […]

Apache-POI忽略Excel工作表的行

我使用POI 3.11并行读取两个Excel文件来比较它们。 当我循环浏览两个文件以查找每张纸的行数/列数时,POI声明其中一张纸张没有行,但如果我打开其中一个文件,并在一张纸上进行单个编辑,然后运行它通过POI再次,然后数字是不同的。 我写了一个小程序来计算单个文件中的行在我做出更改之前和之后,这里是输出: FileName: clean.xls Sheet name: [One] [One] row count: 1 Sheet name: [Two] [Two] row count: 2 FileName: modified.xls Sheet name: [One] [One] row count: 3499 Sheet name: [Two] [Two] row count: 10 请记住,我所做的更改仅限于表单One ,但两行表的行数似乎正在更新。 重要的是,在这两个版本的文件中分别有3499和10行。 下面是代码的简化版本: package com.jpmc.firmrisk.tools.excel; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import org.apache.log4j.Logger; import org.apache.poi.ss.usermodel.Row; import […]