如何删除 poi 3.8 中的超链接?

2024-03-23

我在读取包含 poi 中超链接文本的 Excel 文件时遇到一些问题。

数据是这样的(excel文件):
|1| type | category | job_type | position | name | email
|2|测试|开发商|兼职 |经理 |洪 | asdf##@dsaf.com(超级链接)
|3|测试|开发商|兼职 |经理 |阿德|[电子邮件受保护] /cdn-cgi/l/email-protection(超级链接)
|4|测试|开发商|兼职 |经理 |阿德|啊啊啊啊(非超链接)

要创建工作簿对象,我使用WorkbookFactory.create(InputStream inp) method.
代码在这里:

public POIExcelImport(String name, InputStream inputStream) throws ExcelImportException {
    super(name, null);
    try {

        logger.debug("before work : {}", this.workbook);

        this.workbook = WorkbookFactory.create(inputStream);// exception 

    } catch (InvalidFormatException e) {
        throw new ExcelImportException(e);
    } catch (IOException e) {
        throw new ExcelImportException(e);
    } 

    if(XSSFWorkbook.class.isAssignableFrom(workbook.getClass()))
        this.type = ExcelFileType.XLSX;
    else
        this.type = ExcelFileType.XLS;
}

当我打电话时create方法,抛出异常。

java.lang.IllegalStateException: The hyperlink for cell F2 references relation rId1, but that didn't exist!
at org.apache.poi.xssf.usermodel.XSSFHyperlink.<init>(XSSFHyperlink.java:71) ~[poi-ooxml-3.8.jar:3.8]
at org.apache.poi.xssf.usermodel.XSSFSheet.initHyperlinks(XSSFSheet.java:204) ~[poi-ooxml-3.8.jar:3.8]
at org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:157) ~[poi-ooxml-3.8.jar:3.8]
at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:129) ~[poi-ooxml-3.8.jar:3.8]
at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:269) ~[poi-ooxml-3.8.jar:3.8]
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:159) ~[poi-ooxml-3.8.jar:3.8]
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:183) ~[poi-ooxml-3.8.jar:3.8]
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:73) ~[poi-ooxml-3.8.jar:3.8]
at dreaminfra.ipams.common.excel.poi.POIExcelImport.<init>(POIExcelImport.java:49) ~[ipams-core-1.0.0.jar:na]

我想删除超链接,但只有创建超链接的问题。
我没有想法,有什么想法吗?


我发现这适用于我的系统:

ICell oCell = workbook.GetSheetAt(0).GetRow(0).GetCell(0);
IHyperlink oLink = oCell.Hyperlink;
oLink.setFirstRow(0);
oLink.setLastRow(0);
oLink.setFirstColumn(0);
oLink.setLastColumn(0);
oLink.setLabel(null);
oLink.setAddress("");

注意:我主要使用 NPOI(C# 版本)而不是 POI(Java 版本),但它似乎工作相同。另外,请务必保留.setAddress() last.

EDIT:不幸的是,这似乎会导致由于某种原因 Excel 无法保存文档。 (excel 在保存时检测到损坏)所以它实际上在实践中不起作用,看起来有人必须为此修补 NPOI 存储库。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除 poi 3.8 中的超链接? 的相关文章

  • 在 apache poi(对于 .xlsx 文件)中创建单元格注释并禁用显示注释

    我正在尝试使用 apache poi 创建单元格注释 我可以创建注释 但默认情况下它们始终显示在 Excel 中 我必须手动右键单击单元格并取消勾选显示注释以使它们不可见 现在它们仅当我将鼠标悬停在单元格上时才出现 是否可以使单元格注释默认
  • 获取单元 apache poi 的名称

    我有一个 Cell 对象 如何获取该单元格的名称 想要一个函数 例如 String name myCell getName 在Excel中 我已在名称框中对其进行命名 因此我不想获得 B4 我想获得诸如 InterestRate 之类的名称
  • 使用 POI jar 获取 Excel SheetNames

    我需要使用 POI jar 的所有 Excel 工作表名称 所有包含数据的内容 像 jxl jar getSheetNames 你没有说你想要什么 所以我会猜测一个清单 您只需要迭代工作表索引 获取每个索引的名称 你的代码会是这样的 Fil
  • 使用 Apache POI 读取 excel 文件

    我创建了这段代码来使用 Apache POI 读取 excel 文件的内容 我使用 eclipse 作为编辑器 但是当我运行代码时 我在粗体行中遇到了问题 有什么问题 excel的内容如下 Emp ID Name Salary 1 0 jo
  • 如何使用 POI SS 打开 .xlsx 文件?

    我正在尝试使用 POI SS 使用此代码打开 xlsx 文件 取自http poi apache org spreadsheet quick guide html ReadWriteWorkbook http poi apache org
  • 使用 Apache POI 编辑 Word 文档 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在尝试读取Word文档模板 然后用用户给定的数据替换模板中的变量 不更改模板上的标题或样式 我不确定我正在做的事情是否正确 但是这
  • 使用 java poi 从 Office 2007+ 文档中读取属性集

    我尝试从 Office 2007 文档 docx xlsx 读取属性集 找到了惊人的解决方案http poi apache org hpsf how to html http poi apache org hpsf how to html
  • 我可以使用 Apache-Poi 将 Excel 电子表格格式化为流模式下的表格吗

    A regular spreadsheet tab in Excel can be made into a table by selecting the data and ctrl T This gives each column a he
  • 如何使用 Apache Poi 在折线图中设置轴标签

    我正在尝试使用 java 和 Apache POI 自动创建报告 我快要完成了 但找不到如何在 XSSFChart 中设置轴标签 我已经找到了如何设置图表的标题 Apache POI 设置 Excel 图表标题 https stackove
  • apache poi:如何创建带有条形图和折线图的图表?

    是否可以在 apache poi 中创建一个包含条形图和折线图的图表 你可以找个例子here https blogs office com en us 2012 06 21 combining chart types adding a se
  • 使用 Apache POI 将列添加到 Excel

    我想知道如何使用 apache poi 在 xlsx 文件中添加新列 但我找不到任何东西 有什么办法可以做到这一点吗 或者是否有其他库可以解决这个问题 提前致谢 如果您的 Excel 文件包含已定义的现有行 则添加列的最快方法是在行上迭代一
  • 如何从 Apache POI 获取脚注和段落?

    我有代码可以从 Apache POI 中的 doc 文件获取段落 但我也想获取脚注 另外 这是获取段落的唯一方法吗 到目前为止的代码 InputStream stream HWPFDocument document new HWPFDocu
  • 是否可以使用 Apache POI XSSF 设置活动范围?

    我正在使用 Apache POI XSSF 来读取和写入 Excel 表 我知道我可以使用以下方法在工作表上设置活动单元格Sheet setActiveCell CellAddress address 但是 我想将其设置为工作表上包含多个单
  • 用java将图像写入pdf文件

    我正在编写一个代码 将 Microsoft power point ppt 幻灯片转换为图像 并将生成的图像写入 pdf 文件 以下代码生成图像并将其写入 pdf 文件 但我面临的问题是 当我将图像写入 pdf 文件时 它的大小超出了 pd
  • org.apache.poi.POIXMLException:org.apache.poi.openxml4j.exceptions.InvalidFormatException:

    我正在使用以下 jar 文件 dom4j 1 6 1 jar poi 3 9 20121203 jar poi ooxml 3 9 20121203 jar poi ooxml schemas 3 9 20121203 jar xmlbea
  • 使用apache poi检测Excel中的隐藏单元格

    我们使用 apache poi 3 8 来解析 Excel 我们需要能够检测 并跳过 隐藏行 因为它们在我们的用例中往往包含垃圾数据 看起来这应该有效 row isFormatted row getRowStyle getHidden 但似
  • Apache Poi 无法读取工作表名称

    我们在通过 Apache Poi 读取 Excel 工作表时遇到了一个奇怪的错误 我们使用的是5 0版本 该代码以前可以工作 但现在已停止在我们所有的生产环境中工作 它在本地测试时仍然有效 因此事实证明这很难调试 问题是我们返回了空工作表名
  • 使用 Java 11 在 Eclipse 中混合模块化和非模块化开发

    自从我从事 Java 编程以来已经有一段时间了 在项目拼图之后 我很惊讶地回到了 Java 编程 整个环境对我来说都是陌生的 我在混合模块化和非模块化环境中使用 Eclipse 2018 09 4 9 0 标准 Java 项目时遇到问题 具
  • java POI XSSF 公式评估器

    我在保存新的 Excel 文件时遇到问题 我希望当它被保存时 公式会自行计算 但目前它只是返回 Excel 文件中的一个字符串 公式是正确的 我不知道到底要得到FormulaEvaluator上班 这是我输入返回字符串的公式的地方 data
  • 使用 Apache POI 和 Java 创建 Excel (.xlsx) 文件后文件损坏

    我已经使用 Apache POI API 使用 Java 成功创建了 xlsx 格式的工作簿 Excel 我的代码如下 在 D 盘创建一个名为 RiponAlWasim xlsx 的文件 Workbook wb new XSSFWorkbo

随机推荐

  • 当动画属性初始化 false 时,React Native ActivityIndi​​cator 不显示

    我正在玩 React Native 并得到了一个奇怪的行为 当我尝试展示一个活动指示器对于Android设置其动画化属性为 trueshowProgress如果变量以 false 启动 则变量处于不起作用的状态 在下面的示例中 如果 Act
  • Bootstrap 4 activate.bs.scrollspy 事件未触发

    我正在使用 Bootstrap v4 0 0 我已经包含了必要的 JavaScript 文件 jQuery popper 和 Bootstrap 以及必要的 CSS 文件 这是 HTML div class collapse navbar
  • Typescript 类型别名的默认值

    Typescript 类型别名可以支持默认参数吗 例如 export type SomeType typename string strength number radius number some func Function some o
  • 如何在pyqt中使PyQt窗口状态最大化

    我在我的应用程序中使用 PyQt4 作为 GUI 我想知道如何让我的窗口默认最大化 我瞪大了眼睛 但没有找到替代品 我尝试使用下面的代码 但它不是最大化 而是将窗口大小调整为桌面屏幕大小 但我需要当我们按下窗口标题栏右侧的最大化按钮时我们将
  • 如何以允许在任何索引处快速插入的方式表示一行音符?

    为了 乐趣 并学习函数式编程 我正在 Clojure 中开发一个程序 该程序使用来自称为 Westergaardian 理论 的音乐理论的思想进行算法创作 它生成音乐线 其中线只是由一系列音符组成的单个五线谱 每个音符都有音高和持续时间 它
  • 内容被阻止,因为它没有由 Outlook 插件中的有效安全证书错误签名

    我开发了一个 Outlook 插件 需要在执行作业之前打开身份验证对话框 我面临两个我认为相互关联的问题 尽管该加载项在 Edge 和 Chrome 中运行良好 但该对话框不会出现在 IE 中 我在控制台中也没有看到任何与此相关的错误 I
  • 如何获取Yii2和DbManager中特定角色的用户?

    如何在RBAC中获取Yii2和DbManager中特定角色的用户 请介绍一些用于用户管理和角色管理的API 我搜索并阅读Yii2 指南 http www yiiframework com doc 2 0 guide index html但我
  • Android 持久化有什么用?

    有什么用安卓 持久 真 特性
  • jQuery JSON ajax 请求上的空请求正文

    服务器 在 Heroku 上运行的 Django 1 4 所有请求都是 HTTPS 我的 ajax 调用如下所示 var data username form find input name username val email form
  • SQL Server FOR XML Path创建重复节点

    我想使用 SQL Server 2012 生成以下输出
  • Apache 和 git-http-backend

    我目前正在使用 Apache 2 4 7 的 Ubuntu LTS 14 04 机器上设置一些 git 存储库 这是阿帕奇的配置 SetEnv GIT PROJECT ROOT var www html git SetEnv GIT HTT
  • UnsafeNativeMethods.IWebBrowser2.Navigate2 中的 HRESULT E_FAIL

    我们在 Office 2007 中使用 NET 3 5 开发了一个复杂的应用程序 在某些表单中 我们使用 WebBrowser 控件导航到 HTML 页面 问题在于 在某些机器上 当控件调用 Navigate 方法时 它会引发异常 错误 H
  • 如何在子窗体打开时冻结父窗体

    我遇到的情况是 在某些情况下 我需要打开另一个表单并保持该表单的焦点 modal true 当它们不聚焦并且关闭时 父表单上的控件将使用可能已更改的可能数据进行刷新 最初我有一个方法可以DoEvents虽然子表单已打开 但它导致多个子表单无
  • 单击“确定”后如何停止 sweetalert 滚动到顶部?

    我在用着甜蜜警报2 https sweetalert2 github io当用户在我的网站上发表评论时的脚本 它会向下滚动到他们的评论并弹出甜蜜警报 但是当他们在甜蜜警报框中单击 确定 时 它会滚动回顶部 从我读到的内容来看 我需要某种预防
  • 禁用 Alamofire iOS 缓存

    我试图在使用 Alamofire 发出 iOS 请求时禁用缓存 当我尝试向服务器发出请求 然后以其他用户身份进行身份验证时发出请求时 我会收到 304 状态代码 我已经尝试过一切这个链接 https stackoverflow com qu
  • 具有 HTML 支持的 Angular Material 工具提示

    我只是想知道有没有好的第三方angular material tool tip plugin在 的支持下HTML 我在用Material design with Angular 7仅 无引导程序 虽然我正在使用ng2 工具提示指令 http
  • 函数超时(Windows)?

    我正在尝试为特定功能实现超时 我检查了SE中的许多问题 但找不到任何适合我的问题的解决方案 因为 我在 Windows 中运行 python 超时应用于我无法控制的Python函数 即它是在已经设计的模块中定义的 python函数不是子进程
  • 如何通过 ID 检查 Scratch 项目是否被共享?

    我不希望很多人知道这一点 但是有没有办法检查 Scratch 项目 ID 是否属于共享项目 例如 项目 ID3是一个实际项目 但不共享 而 ID399293697是共享的 那么我如何使用 JavaScript 来查看这些是否共享呢 我搜索了
  • “RVM 不是函数”错误

    RVM 已正确安装在我的计算机上 运行 Mac OSX 10 6 8 并且运行良好 奇怪的是 要运行它 我必须使用source rvm scripts rvm对于每个新会话 我尝试从它创建一个符号链接 opt local bin rvm 但
  • 如何删除 poi 3.8 中的超链接?

    我在读取包含 poi 中超链接文本的 Excel 文件时遇到一些问题 数据是这样的 excel文件 1 type category job type position name email 2 测试 开发商 兼职 经理 洪 asdf dsa