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 ก็ได้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น