29/8/58

Exception java.lang.IllegalArgumentException: Invalid char (:) found at index (11) in sheet name

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 ก็ได้

ไม่มีความคิดเห็น:

แสดงความคิดเห็น