标签 jxl 下的文章

jxl解析Excel报错:Cannot read drop down range Unrecognized token 60

Warning:  Cannot read drop down range Unrecognized token 60
java.lang.NullPointerException
  at jxl.biff.DataValiditySettingsRecord.getFirstColumn(DataValiditySettingsRecord.java:238)
  at jxl.read.biff.SheetReader.read(SheetReader.java:913)
  at jxl.read.biff.SheetImpl.readSheet(SheetImpl.java:650)
  at jxl.read.biff.WorkbookParser.getSheet(WorkbookParser.java:249)
  at com.tunps.platform.util.jxExcelMain(parseExcel.java:93)
  at org.apache.jsp.pages.Import_jsp._jspService(Import_jsp.java:190)
  at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

用Jxl解析Excel出现这个问题。原因是Excel的数据有效性有问题,如图:

excel_validation.jpg

这个字段使用了其他电脑上获取的下拉选项,在我电脑上没有此选项文件,所以数据有效性是有问题的。我们可以通过这段代码来去掉jxl对Excel数据有效性的验证:

WorkbookSettings workbooksetting = new WorkbookSettings();
workbooksetting.setCellValidationDisabled(true);
Workbook wb = Workbook.getWorkbook(is,workbooksetting);

到此问题解决。但是我的这个项目已经把解析Excel的类封装成了jar,没有办法修改Java源代码。所以只能将Excel的有效性去掉再上传解析Excel文件。

在WPS内的去掉有效性操作是:数据 -- 有效性 -- 设置 -- 允许 -- 任何值 -- 勾选对所有同样设置的其他所有单元格应用这些设置 -- 确定。

在Excel中去掉有效性的操作是:数据 -- 数据验证 -- 数据验证 -- 允许 -- 任何值 -- 勾选对所有同样设置的其他所有单元格应用这些设置 -- 确定。