当前位置: 首页 > 知识库问答 >
问题:

如何阅读包含超链接的excel文档

端木震博
2023-03-14

在使用apache poi API阅读excel文档时,我得到了以下异常:

Exception in thread "main" java.lang.IllegalStateException: A sheet hyperlink must either have a location, or a relationship. Found:
<xml-fragment ref="C1271" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac"/>
at org.apache.poi.xssf.usermodel.XSSFHyperlink.<init>(XSSFHyperlink.java:72)
at org.apache.poi.xssf.usermodel.XSSFSheet.initHyperlinks(XSSFSheet.java:182)
at org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:139)
at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:119)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:222)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:200)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:172)
at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:63)
at com.gepower.mdcatalog.test.Test.main(Test.java:34)

如果我手动从excel工作表中删除该超链接,效果很好。。。所以我的问题是,可以阅读有超链接的excel表格吗?或者是否有任何方法可以使用java代码本身删除该超链接。。谢谢

共有1个答案

滕项明
2023-03-14

加载并获取任何单元格的超链接地址,以获取该单元格的超链接。您可以使用以下内容:

Workbook wb = WorkbookFactory.create(new File(FilePath));
Sheet TestSheet = wb.getSheetAt(0);
Cell cell = TestSheet.getRow(0).getCell(0);
Hyperlink linkAddress = cell.getHyperlink();
if(linkAddress != null){
    System.out.println(linkAddress .getAddress());
}
 类似资料:
  • 我正在使用ApachePOI将Word文档转换为HTML。我有一个Word文档,其中有一个脚注,其中包括一个外部超链接。我无法获取该超链接的超链接URL。这是我的代码: 从上面的代码中,我看到在我的例子中,超链接的数量是2。我将rId正确地命名为“rId1”和“rId2”,但链接总是为空。 在OOXML中,我看到文档中的超链接存储在包名“/word/_rels/document.xml.rels”

  • 我需要读取一个非常大的Excel文件,该文件既有日期编号,也有非日期编号。我发现的所有示例似乎都能做到这一点或那一点(将单元格标识为日期值或在恒定内存中读取文件)。 对于非常大的文件,唯一有效的解决方案是此处所述的StreamingReader方法(此处所述的其他示例要么不适用于我的文件格式,要么出现内存不足堆错误)。 用java读取大型Excel文件(500K行) http://poi.apac

  • 我有一个在线链接,每天更新一个zip文件。zip文件包含一个文件夹,在其中我想读取到熊猫的xls文件 我尝试使用zipfile模块。 但它给出了一个错误: 错误:无效模式(rb)或文件名:超文本传输协议://xxxxx/xxxx/xxxxx/xxxxx.zip 也只读csv似乎有压缩属性 我如何做到这一点?

  • 这是我的excel表,其中包含一些空白单元格之间。所以我不能正确地阅读这张纸。所以,当读行时,当它在中间找到一个空白单元格时,列计数就会减少。

  • Java 中如何给 Excel 的单元格设置超链接 我想导入一个excel文件,并且通过java代码给某个单元格设置超链接(业务需求)。请问大家有什么思路没

  • 问题内容: 我正在尝试读取“ file.txt”,然后使用Golang将内容放入变量中。这是我尝试过的… 文件已成功读取,并且从 os.Open 返回的返回类型为 * os.File 问题答案: 这取决于您要执行的操作。 它输出&{0xc082016240}的原因是因为您正在打印文件描述符()的指针值,而不是文件内容。要获取文件内容,可以从文件描述符中获取。 要将所有文件内容(以字节为单位)读取到