[Java] POI 엑셀 다운로드 시 Invalid char (/) found at index (6) in sheet name 에러

2022. 12. 12. 13:59 JAVA/Java

Java에서 엑셀다운로드 로직을 구현한 뒤 실행을 했더니 다음과 같은 에러가 발생했다.

java.lang.IllegalArgumentException: Invalid char (/) found at index (6) in sheet name '노선별 시작/종료 수집율 목록'

 

 

이는 엑셀의 제한 때문에 발생한 오류이다.

실제로 엑셀에서 워크시트에 사용할 수 없는 문자가 있다.

 
 

 

엑셀 제한 문자

\ / * [ ] : ?

시트명에 위의 문자가 포함되었다면 치환해줘야한다.

 

시트명 치환

나는 대괄호는 소괄호로 치환해주고, 나머지 특수문자는 공백으로 치환해주는 것으로 수정하였다.

String sheetName = "시트명/뭐가올지 몰라요";

sheetName = sheetName.replaceAll("\\[", "\\(");	// 대괄호 > 소괄호
sheetName = sheetName.replaceAll("\\]", "\\)");	// 대괄호 > 소괄호
sheetName = sheetName.replaceAll("[[:]\\\\/?[*]]", " "); 	// 나머지 특수문자 > 빈값

 

출처 : https://haenny.tistory.com/277