java替换Excel工作表表名不能用的字符的正则表达式

在使用poi做Excel动态导出时,由于Excel工作表表名不能用下列字符
星号——*
斜杠——/
冒号——:
反斜杠——
方符号——[ 或 ]
问号——?
当存在这些字符时,createSheet()方法会抛出异常,因此需要把这些字符替换掉。
替代的正则表达式如下:

String regex = "(\\*|/|:|\\\\|\\[|\\]|\\?)";

测试示例:

package test;

public class TestRegex {
	
	public static void main(String[] args) {
		String str = "1*11/33?232\\323:31[45646]]464123";
		System.out.println(str);
		String regex = "(\\*|/|:|\\\\|\\[|\\]|\\?)";
		str = str.replaceAll(regex, "-") ;
		System.out.println(str) ; 
	}

}

结果输出如下:

1*11/33?232\323:31[45646]]464123
1-11-33-232-323-31-45646--464123

同时,还需要注意,构成工作表的表名字符个数不得超过31个,并且sheet的名字不能使用excel的文件名 。

发布了55 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/mr_zql/article/details/97013360