Java 如何读取包含超链接的excel文档
在使用apache poi API读取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
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显示了有问题的超链接指向什么?嗨,甘,我也面临着同样的问题。。你是怎么解决的?