Java export Excel ด้วย Apache poi Merge column แล้วข้อมูลหาย
จากหัวข้อ การเขียน Java Export excel ด้วย Apache poi
หลายท่านบ่นเรื่องการใช้งาน function addMergedRegion (การรวม column)
merge แล้วข้อมูลชอบหายไป
วันนี้ผมมีคำตอบให้
สาเหตุที่ข้อมูลตรงบรรทัดที่เรา merge หายไปเป็นเพราะว่า
สมมุติ เราสั่งแบบนี้
worksheet.addMergedRegion(new CellRangeAddress(5, 5, 0, 3));
ความหมายคือ ให้ merge แถวที่ 4 (เริ่มนับจาก 0)
เริ่มจาก column แรก(0) ถึง column ที่ 4 (3)
ตอนที่เราสั่ง create cell ใน แถวที่เราทำการ merge ไว้ต้องระวัง
ให้ดู index ให้ดีๆ ยกตัวอย่างเช่น
HSSFCell cell = row5.createCell((short) 2);
cell.setCellValue("test");
ให้สร้าง cell ที่กำหนดโดยเริ่มตั้งแต่ cell ที่ 3 (2)
พรุ้มกับใส่ค่า String คำว่า "test" เข้าไป
ผลปรากฏว่าคำว่า "test" หายไป เพราะว่าถูก merge เข้าไปนั่นเอง
เนื่องจากแถวนี้เราสั่ง merge ตั้งแต่ cell ที่ 0 - 3
ที่ถูกถ้าไม่อยากให้ข้อมูลหายเราต้องเริ่ม สร้าง cell ตั้งแต่ cell ที่ 0 เป็นต้นไป
พูดง่ายๆ คือต้องสร้าง cell ให้ตรงกับ column ที่เราเริ่ม merge ตามตัวอย่างนี้
HSSFCell cell = row5.createCell((short) 0);
cell.setCellValue("test");