在打开一个与Java的Excel文件我有这个错误:警告:使用本地非内build名称

当我尝试打开一个Excel文件,我有这个错误消息。 警告:使用本地非内build名称

我的Excel文件文件包含超过1600行,如果我尝试相同的代码,并打开一个小的Excel文件,它的工作。

告诉我为什么?

我用JXL谢谢

WorkbookSettings wbSettings = new WorkbookSettings(); wbSettings.setSuppressWarnings(真);

它似乎只是一个警告,而不是与Excel文件有关的错误,而不是文件的parsing,我只是忽略它。 以下是生成该警告的代码:

// 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 } 

user618111,

这可能是您的大型Excel文件中的一个问题。 转到菜单公式,然后单击名称pipe理器。 您很可能会看到名称有错误的值(#REF!)。

如果excel文件生成在你的控制之下,你可以修复它。 否则,我build议你忽略它。

可以有更多的scheme,您从一个不同的工作簿中复制了几个单元格。 如果您保留源格式,并且如果它有一个定义的名称,它也将被复制到名称pipe理器。 检查是否有这样的内容,并删除它们。

另外,当我使用MySQL Addin,在Name Manager中创build了一些名字时,我遇到了同样的问题。 如果是这种情况,您可以禁用该COM插件并再次尝试。