当我尝试打开一个 excel 文件时,我收到此错误消息。警告:使用本地非内置名称
如果我尝试相同的代码并打开一个小的 excel 文件,我的 excel 文件文件包含超过 1600 行,它正在工作。
告诉我为什么?
我用 JXL 谢谢
WorkbookSettings wbSettings = new WorkbookSettings(); wbSettings.setSuppressWarnings(true);
它似乎只是一个警告,而不是与 excel 文件相关的错误,而不是文件的解析,我会忽略它。这是生成该警告的代码:
// Add all the local names to the specific sheets
913 for (Iterator it = localNames.iterator() ; it.hasNext() ;)
914 {
915 NameRecord nr = (NameRecord) it.next();
916
917 if (nr.getBuiltInName() == null)
918 {
919 logger.warn("Usage of a local non-builtin name");
920 }
921 else if (nr.getBuiltInName() == BuiltInName.PRINT_AREA ||
922 nr.getBuiltInName() == BuiltInName.PRINT_TITLES)
923 {
924 // appears to use the internal tab number rather than the
925 // external sheet index
926 SheetImpl s = (SheetImpl) sheets.get(nr.getSheetRef() - 1);
927 s.addLocalName(nr);
928 }
929 }
930 }
用户618111,
这可能是您的大型 Excel 文件中的问题。转到菜单公式,然后单击名称管理器。您很可能会看到具有错误值的名称(#REF!)。
如果 excel 文件生成在您的控制范围内,您可以修复它。否则,我建议你忽略它。
可能还有另一种情况,您从不同的工作簿复制了几个单元格。如果您保留源格式,并且如果它具有定义的名称,它也将被复制到名称管理器。检查是否有任何此类并删除它们。
另外,我在使用 MySQL Addin 时遇到了同样的问题,它在 Name Manager 中创建了一些名称。如果是这种情况,您可以禁用该 COM 插件并重试。