StreamSheet - ไลบรารี Kotlin/Spring Boot สำหรับการส่งออก Excel ขนาดใหญ่
(github.com/danpung2)สวัสดีครับ ผมเป็นนักพัฒนาที่สร้าง StreamSheet ขึ้นมา
ในการทำงานจริง มักเกิดปัญหา OOM (OutOfMemory) บ่อยครั้งเมื่อพัฒนาฟังก์ชันส่งออก Excel และทุกครั้งที่เกิดขึ้นก็ต้องคอยแก้ไขเป็นรายกรณี
ทุกครั้งที่สร้างฟังก์ชันส่งออก Excel ก็ต้องเขียนโค้ด boilerplate ซ้ำ ๆ อยู่เสมอ
เมื่อเจอปัญหาเหล่านี้ซ้ำแล้วซ้ำเล่าในการทำงานจริง ผมจึงอยากสร้าง SDK ที่ช่วยให้สามารถส่งออกข้อมูลขนาดใหญ่เป็นไฟล์ Excel ได้อย่างง่ายดาย
[เป้าหมายของโปรเจกต์]
ความเสถียรด้านหน่วยความจำ: ทำงานได้อย่างเสถียรโดยไม่เกิด OOM ในการส่งออกข้อมูลมากกว่า 1 ล้านแถวผ่าน JPA Stream, JDBC ResultSet, MongoDB Cursor เป็นต้น
การใช้งาน: กำหนดคอลัมน์ได้อย่างง่ายดายด้วยการติด @ExcelSheet, @ExcelColumn กับ DTO
การผสานรวม: ใช้งานได้ทันทีด้วย Spring Boot Auto-configuration
ลองดูได้เลยครับ และหากมีข้อเสนอแนะจะขอบคุณมากครับ..
4 ความคิดเห็น
ลองใช้ไลบรารีสร้างรายงาน Excel แบบอิงเทมเพลต (TBEG) ดู
https://github.com/jogakdal/data-processors-with-excel
Excel มีจำนวนแถวสูงสุดอยู่แล้ว
ถ้าข้อมูลมีปริมาณมาก ใช้ csv จะดีกว่าไหม
อย่างที่คุณบอกไว้ Excel มีข้อจำกัดจำนวนแถวสูงสุดอยู่ที่ประมาณ 1.04 ล้านแถว ดังนั้นสำหรับข้อมูลขนาดใหญ่ CSV อาจเป็นตัวเลือกที่เหมาะสมกว่า และผมเองก็ออกจะชอบ CSV มากกว่าด้วย
อย่างไรก็ตาม เนื่องจากคนส่วนใหญ่ที่ขอฟีเจอร์ส่งออกมักจะชอบฟอร์แมต Excel โปรเจ็กต์นี้จึงเริ่มต้นขึ้นเพื่อลดการเขียนโค้ดซ้ำ ๆ และลดปัญหา OOM ในกระบวนการนั้น
ขอบคุณสำหรับความเห็นครับ!
จากประสบการณ์ทำงานจริงของผม/ฉันเอง ดูเหมือนว่าลูกค้ามักจะชอบ Excel มากกว่า CSV
ในกรณีของผม/ฉันก็เป็นแบบนั้นเหมือนกัน และคิดว่าน่าจะมีความต้องการอยู่พอสมควร