我在阅读包含 poi 中超链接文本的 excel 文件时遇到了一些问题。
数据是这样的(excel文件):
|1| 类型| 类别| 工作类型| 职位| 姓名| 电子邮件
|2| 测试 | 开发商 | 兼职 | 经理 | 洪 | asdf##@dsaf.com(超链接)
|3| 测试 | 开发商 | 兼职 | 经理 | 阿斯德| test@mail.com(超链接)
|4| 测试 | 开发商 | 兼职 | 经理 | 阿斯德| aaaaaaa(非超链接)
要创建工作簿对象,我使用WorkbookFactory.create(InputStream inp)
方法。
代码在这里:
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]
我想删除超链接,但只有创建超链接的问题。
我不知道,有什么想法吗?