在Java中,我们使用以下包来编程创建Excel文档:
org.apache.poi.hssf
如果你试图设置一个工作表的名称(不是文件,而是内部Excel工作表),那么如果:
- 名称超过31个字符
- 名称包含以下任何字符:/ \ * ? [ ]
你将会收到一条错误信息。
然而,在创建一个带有以下工作表名称的文档之后:
@#$%&()+~`"':;,.|
在Java中不会输出错误信息,并且一切似乎都正常。但是,当你在Office 2003中打开Excel文件时,它将给出一条错误消息,说工作表名称无效,并将其重命名为类似“Sheet 1”的通用名称。
我对我们使用的先前包不太了解,但看起来它没有正确过滤无效的Excel工作表名称。有没有办法可以过滤掉所有已知的无效字符?我不想简单地过滤掉所有非单词字符。