在 SXSSF 工作簿中使用 Apache POI 3.8-beta4 创建超链接时出现问题

发布于 2024-11-19 04:44:49 字数 153 浏览 2 评论 0原文

使用 POI SXSSF 实现时,似乎无法正确创建超链接单元。我已从如何创建超链接指南中获取了示例代码的精确副本,并将工作簿更改为 SXSSF 而不是 XSSF,并且超链接不再起作用。

有其他人看到过这个问题或发现了解决方法吗?

谢谢,

马克。

It appears that hyperlink cells are not created correctly when using the POI SXSSF implementation. I have taken an exact copy of the example code from the HOW-TO guide for creating hyperlinks and changed the workbook to be SXSSF instead of XSSF, and the hyperlinks no longer function.

Has anyone else seen this problem or discovered a workaround?

Thanks,

Mark.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

谢绝鈎搭 2024-11-26 04:44:49

SXSSF 相当新,目前仅针对某些任务。如果可以的话,我建议您看看 XSSF 是如何做到的,并提交补丁!

同时,您可能可以使用 HYPERLINK 函数 相反。将单元格设置为公式单元格,并将公式设置为类似 HYPERLINK('http://stackoverflow.com/','Stack Overflow') 的内容,它将显示为链接Excel

更新: 添加了对 SXSSF 的支持,以支持 r1145629 中的超链接

SXSSF is quite new, and currently aimed at only certain tasks. If you can, I'd advise you to look at how XSSF does it, and submit a patch!

In the mean time, you can probably get away with using the HYPERLINK function instead. Set your cell to be a formula cell, and set the Formula to be something like HYPERLINK('http://stackoverflow.com/','Stack Overflow') and it'll show as a link in Excel

Update: Support was added to SXSSF to support hyperlinks in r1145629

英雄似剑 2024-11-26 04:44:49

我知道这是一篇旧帖子,但当我对同一主题进行搜索时,它反复出现。

我正在使用 POI 3.9X,它确实可以使用超链接,但是如果您使用带有超链接的大量行,则会有一个很大的缺点。

  1. Excel 中每张工作表有 65K 个超链接的限制
  2. 如果您决定在 65K 标记之后将工作簿分成多个工作表,则超链接对象的总数将保留在内存中(假设每行使用 1 个),如果迭代,这可能会导致巨大的峰值如果没有足够的堆,可能会导致内存不足错误...所谓的巨大,我的意思是 200,000 行的千兆字节。
  3. 使用公式方法确实有效,我转而使用它,因为它没有使用 SXSSF 时创建保留在内存中的超链接对象的限制。这是假设处理 URL 而不是关系。
    对于根据上一示例看到“0”的用户,请确保在超链接 Excel 函数之前包含“=”

I know this is an old post, but it came up repeatedly while I was doing searches on the same subject.

I'm using POI 3.9X and it does work with hyperlinks, however there is a big downside if you are using really large amounts of rows with a hyperlink.

  1. there is a limit of 65K hyperlinks per sheet in Excel
  2. If you decide to break your workbook into sheets after the 65K mark the total number of hyperlink objects stays in memory (say if using 1 per row), which can cause a huge spike if iterating quickly and can cause Out of Memory errors if not enough Heap... by huge , I mean gigabytes for 200,000 rows.
  3. The use of the formula method DOES work, and I switched to it as it does not have the limitations of creating a hyperlink object that stays in memory when using SXSSF. This is assuming dealing with a URL and not a relation.
    For those that see a "0" based on the previous example, make sure to include the "=" before the Hyperlink Excel function
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文