Exception java.lang.IllegalArgumentException: Invalid char (:) found at index (11) in sheet name
ใครเคยเจอ Exception แบบนี้บ้าง Exception ที่เจอนี้เป็น Exception ที่ผมสร้าง sheet โดยใช้ POI แล้วใส่ชื่อเข้าไป มาดูโค้ดที่ทำให้เกิด Exception นี้กันpackage info.doesystem.tutorial.poi;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class NewSheet {
public static void main(String[] args) {
try (
Workbook wb = new XSSFWorkbook();
FileOutputStream fileOut = new FileOutputStream("D://Blog/Temp File/workbook.xlsx")
){
Sheet sheet1 = wb.createSheet("new sheet 1111111111111111111111111111111111111111111111111");
Sheet sheet2 = wb.createSheet("new sheet 2:2");
wb.write(fileOut);
System.out.println("SUCCESS");
} catch (Exception ex) {
System.out.println("Exception " + ex);
}
}
}
จากโค้ดนี้ถ้าเราลองสังเกต Exception จะเห็นว่าเป็น Exception ที่เกิดจากการประกาศ sheet name แล้วบอกว่าอักขระ : ไม่ถูกต้องใน index ที่ 11
ถ้าเราลองดูในโค้ดจะเห็นว่ามีการประกาศอักขระ : อยู่ในการสร้าง sheet name ซึ่งอักขระ : เป็นตัวที่ 11 พอดี
ดังนั้น Exception นี้จึงเกิดจากที่เราสร้าง sheet แล้วใส่ชื่อ sheet ผิด ซึ่งเป็นอักขระที่ไม่สามารถใช้ได้ ให้แก้อักขระนี้เสีย แล้วก็จะรันได้
วิธีการแก้ก็ลบออก หรือไม่ก็ใช้ WorkbookUtil.createSafeSheetName ก็ได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น