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

Java 如何读取包含超链接的excel文档,java,excel,apache-poi,Java,Excel,Apache Poi,在使用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/officeDo

在使用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)
线程“main”java.lang.IllegalStateException中的异常:工作表超链接必须具有位置或关系。发现: 位于org.apache.poi.xssf.usermodel.XSSFHyperlink.(XSSFHyperlink.java:72) 位于org.apache.poi.xssf.usermodel.XSSFSheet.initHyperlinks(XSSFSheet.java:182) 位于org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:139) 位于org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:119) 位于org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:222) 在org.apache.poi.POIXMLDocument.load上(POIXMLDocument.java:200) 位于org.apache.poi.xssf.usermodel.XSSFWorkbook.(XSSFWorkbook.java:172) 位于org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:63) 位于com.gepower.mdcatalog.test.test.main(test.java:34) 如果我手动从excel工作表中删除该超链接,效果会很好…所以我的问题是,是否可以读取具有超链接的excel工作表?或者是否有任何方法可以使用java代码本身删除该超链接。。
谢谢

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

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());
}

请共享获得此异常的代码。你只是在读取任何有超链接或其他内容的单元格时才得到它。如果excel工作表有超链接,我无法创建工作簿的简单实例…下面是代码..File inputFile=new File(“C:\\test.xlsx”);InputStream InputStream=新文件InputStream(inputFile);XSSFWorkbook book=(XSSFWorkbook)WorkbookFactory.create(inputstream);我多次使用带有超链接的excel,无论是否带有超链接。看来一定还有别的问题。不过,我已经更新了我的答案,请检查它是否在你这边起作用。Excel显示了有问题的超链接指向什么?嗨,甘,我也面临着同样的问题。。你是怎么解决的?