问题标签 [poi-hssf]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3258 浏览

java - 尝试使用 Apache POI-HSSF 读取 MS Excel 文件时出现 IndexOutOfBoundsException

在尝试使用POI-HSSF v3.2解析 MS Excel 文件时,我收到了 IndexOutOfBoundsException。我试图阅读的电子表格不是空的,它是使用 MS Excel 2003 创建的,POI 包中包含的 BiffViewer 解析它没有问题。

我的代码如下:

这是我得到的堆栈跟踪:

org.apache.poi.hssf.record.RecordInputStream 的 java.io.FileInputStream.read(FileInputStream.java:199) 的 java.io.FileInputStream.readBytes(Native Method) 的线程“main”java.lang.IndexOutOfBoundsException 中的异常.nextRecord(RecordInputStream.java:106) 在 org.apache.poi.hssf.eventusermodel.HSSFRecordStream.getNextRecord(HSSFRecordStream.java:128) 在 org.apache.poi.hssf.eventusermodel.HSSFRecordStream.nextRecord(HSSFRecordStream.java:93) ) 在 org.apache.poi.hssf.eventusermodel.HSSFEventFactory.processEvents(HSSFEventFactory.java:98) 在 src.Excel.main( Excel.java:21)

非常感谢!我知道,我很懒惰,本可以自己查看 POI 源,但是,希望这里有人能够迅速指出我在代码中所做的任何愚蠢的事情。

0 投票
5 回答
77428 浏览

java - 使用 POI HSSF API 从 excel 单元格中读取日期值

我正在使用 POI HSSF API 进行 Java 中的 excel 操作。我的一个 Excel 单元格中有一个日期值“2009 年 8 月 1 日”,当我尝试使用 HSSF API 读取该值时,它会将单元格类型检测为数字并返回我的日期的“双倍”值。请参阅下面的示例代码:

Cell.getCellType() 返回 NUMERIC_TYPE,因此此代码将日期转换为双倍!:(

有什么方法可以读取 HSSF POI 中的日期!?

0 投票
1 回答
1824 浏览

java - 有没有办法在 JSP 页面中显示 HSSFWorkbook 对象?

有没有办法在 JSP 页面中显示一个 HSSFWorkbook 对象,而在服务器端没有输出文件?在下面的代码中,我提供了net.sf.jxls.transformer.XLSTransformer.transformXLS(InputStream is, Map beanParams)所需的模板文件和 bean,以返回一个 HSSFWorkbook 对象。我现在需要一种在 JSP 中使用此对象的方法,而不必使用 OutputStream 将输出文件存储在服务器端。

0 投票
6 回答
18366 浏览

apache-poi - 我们如何使用 POI API 读取受保护的密码 Excel 文件 (.xls)

我刚刚学习了 POI,发现 HSSF 非常易于阅读和创建 excel 文件 (.xls)。但是,当我想读取受密码保护的 excel 时,我发现了一些问题。我花了一个小时在互联网上找到这个解决方案。

请你能帮我解决这个问题。如果你能给我一个代码片段,我很高兴。

谢谢你。

0 投票
8 回答
36853 浏览

java - 使用 HSSF 从 Excel 读取字符串值,但它是双倍的

我正在使用 HSSF-POI 读取 excel 数据。问题是我在一个单元格中有一个看起来像数字但实际上是字符串的值。如果我查看 Excel 中的格式单元格,它会显示类型是“文本”。HSSF Cell 仍然认为它是数字的。如何将值作为字符串获取?

如果我尝试使用cell.getRichStringValue,我会得到异常;如果cell.toString,它与 Excel 工作表中的值不完全相同。

编辑:直到这个问题得到解决,我会使用

0 投票
8 回答
55565 浏览

java - 如何获取给定单元格的(Java Apache POI HSSF)背景颜色?

我有一个现有的 excel 电子表格,我正在从中访问和读取值,我正在使用 Apache POI HSSF。

它是这样初始化的:

我正在遍历工作表中存在的所有单元格,这会生成一个单元格对象:

请熟悉该框架的人解释如何创建一个 (HSSFColor) 对象来表示工作表中每个单元格的背景颜色。

非常感谢

编辑,更新

要清楚我想知道的是:如何为现有单元格的背景颜色创建/获取HSSFColor对象?

此代码仅返回一个短数字,而不是 HSSFColor 对象。感谢您到目前为止的答案。

0 投票
6 回答
14986 浏览

java - POI / Excel:以“相对”方式应用公式

我正在使用 Apache 的 POI 来使用 Java 操作 Excel (.xls) 文件。

我正在尝试创建一个新单元格,其内容是公式的结果,就好像用户复制/粘贴了公式一样(我称之为“相对”方式,与“绝对”相反)。

为了让自己更清楚,这里是一个简单的例子:

  • 单元格 A1 包含“1”,B1 包含“2”,A2 包含“3”,B2 包含“4”。
  • 单元格 A3 包含以下公式“=A1+B1”。

如果我将公式复制到excel下的A4单元格中,它变成"=A2+B2":excel正在动态调整公式的内容。

不幸的是,我无法以编程方式获得相同的结果。我找到的唯一解决方案是将公式标记化并自己做脏活,但我真的怀疑应该这样做。我无法在指南或 API 中找到我要查找的内容。

有没有更简单的方法来解决这个问题?如果是这样,你能指出我正确的方向吗?

此致,

尼尔斯

0 投票
1 回答
1197 浏览

excel - 使用 POI 或 HSSF 从 Excel 文档中提取图表?

我有一堆 Excel 文档,其中一张纸上有数据,还有一张从另一张纸上的数据生成的图表。我想获取这些文档并从中生成一系列 HTML 页面。使用 POI(或 HSSF)知道我可以从文档中读取数据并使用某些图表引擎生成图表。但是客户对我通过此操作的任何引擎的输出都不满意,只会对 Excel 电子表格中已有的图表感到满意。有谁知道我如何从 Excel 中提取该图表作为 JPEG/PNG/GIF?

0 投票
1 回答
21838 浏览

java - 如何知道工作簿中的工作表数?

我正在使用 hssf api 从 xls 文件中读取数据。但是有没有办法得到确切的号码。包含存储数据的工作簿中的工作表?

0 投票
1 回答
1036 浏览

java - 如何确定电子表格单元格是否包含日期或实数?

当电子表格中的单元格包含简单日期 (mm/dd/yyyy) 时,poi API 将单元格类型标记为“数字”。这可能是因为电子表格 (IMO) 历来只能识别字符串和实数。

可以对单元格索引进行硬编码,并有条件地使用它来调用“getDateCellValue”。但这感觉就像一个黑客。

poi API中还有哪些其他方法可以确定单元格中的内容是日期而不是实数?