13 คะแนน โดย danpung2 2026-03-30 | 4 ความคิดเห็น | แชร์ทาง WhatsApp

สวัสดีครับ ผมเป็นนักพัฒนาที่สร้าง StreamSheet ขึ้นมา

ในการทำงานจริง มักเกิดปัญหา OOM (OutOfMemory) บ่อยครั้งเมื่อพัฒนาฟังก์ชันส่งออก Excel และทุกครั้งที่เกิดขึ้นก็ต้องคอยแก้ไขเป็นรายกรณี
ทุกครั้งที่สร้างฟังก์ชันส่งออก Excel ก็ต้องเขียนโค้ด boilerplate ซ้ำ ๆ อยู่เสมอ
เมื่อเจอปัญหาเหล่านี้ซ้ำแล้วซ้ำเล่าในการทำงานจริง ผมจึงอยากสร้าง SDK ที่ช่วยให้สามารถส่งออกข้อมูลขนาดใหญ่เป็นไฟล์ Excel ได้อย่างง่ายดาย

[เป้าหมายของโปรเจกต์]

ความเสถียรด้านหน่วยความจำ: ทำงานได้อย่างเสถียรโดยไม่เกิด OOM ในการส่งออกข้อมูลมากกว่า 1 ล้านแถวผ่าน JPA Stream, JDBC ResultSet, MongoDB Cursor เป็นต้น
การใช้งาน: กำหนดคอลัมน์ได้อย่างง่ายดายด้วยการติด @ExcelSheet, @ExcelColumn กับ DTO
การผสานรวม: ใช้งานได้ทันทีด้วย Spring Boot Auto-configuration

ลองดูได้เลยครับ และหากมีข้อเสนอแนะจะขอบคุณมากครับ..

4 ความคิดเห็น

 
jogakdal 2026-04-07

ลองใช้ไลบรารีสร้างรายงาน Excel แบบอิงเทมเพลต (TBEG) ดู

https://github.com/jogakdal/data-processors-with-excel

 
callakrsos 2026-03-30

Excel มีจำนวนแถวสูงสุดอยู่แล้ว
ถ้าข้อมูลมีปริมาณมาก ใช้ csv จะดีกว่าไหม

 
danpung2 2026-03-30

อย่างที่คุณบอกไว้ Excel มีข้อจำกัดจำนวนแถวสูงสุดอยู่ที่ประมาณ 1.04 ล้านแถว ดังนั้นสำหรับข้อมูลขนาดใหญ่ CSV อาจเป็นตัวเลือกที่เหมาะสมกว่า และผมเองก็ออกจะชอบ CSV มากกว่าด้วย

อย่างไรก็ตาม เนื่องจากคนส่วนใหญ่ที่ขอฟีเจอร์ส่งออกมักจะชอบฟอร์แมต Excel โปรเจ็กต์นี้จึงเริ่มต้นขึ้นเพื่อลดการเขียนโค้ดซ้ำ ๆ และลดปัญหา OOM ในกระบวนการนั้น

ขอบคุณสำหรับความเห็นครับ!

 
hshim 2026-03-31

จากประสบการณ์ทำงานจริงของผม/ฉันเอง ดูเหมือนว่าลูกค้ามักจะชอบ Excel มากกว่า CSV
ในกรณีของผม/ฉันก็เป็นแบบนั้นเหมือนกัน และคิดว่าน่าจะมีความต้องการอยู่พอสมควร