ในโลกของการทำงานยุคดิจิทัล การสร้างรายงานข้อมูลที่ซับซ้อนและมีมาตรฐานเป็นสิ่งจำเป็นอย่างยิ่ง องค์กรต่างๆ ไม่ได้ต้องการเพียงแค่ไฟล์ที่มีตัวเลขดิบๆ เท่านั้น แต่ยังต้องการเอกสารที่ดูเป็นมืออาชีพ มีการจัดรูปแบบ (Formatting) ที่ถูกต้อง ทั้งในส่วนของการแสดงผลวันที่ สกุลเงิน หรือแม้แต่การเน้นสีเพื่อดึงความสนใจของผู้ใช้งาน การจัดการกับรายละเอียดเหล่านี้ด้วยโค้ดโปรแกรมจึงเป็นหัวใจสำคัญในการพัฒนาระบบ Back-end ให้สามารถสร้างไฟล์ Excel ได้อย่างสมบูรณ์แบบ
เจาะลึกรายละเอียดและประเด็นสำคัญ
การกำหนดสไตล์ (Styling) ใน Excel ไม่ใช่แค่การเปลี่ยนสีพื้นหลังหรือฟอนต์เท่านั้น แต่เป็นการจัดการกับโครงสร้าง XML ที่อยู่เบื้องหลังไฟล์ XLSX โดย OpenXML SDK ช่วยให้เราสามารถเข้าถึงและแก้ไขส่วนเหล่านี้ได้โดยตรง เราต้องเข้าใจว่าแต่ละองค์ประกอบ เช่น Font, Fill, Border และ Number Format ล้วนถูกกำหนดเป็น ‘Style’ แยกกันใน Workbook ก่อนที่จะนำไปอ้างอิงกับเซลล์ใดเซลล์หนึ่ง
ประเด็นสำคัญที่นักพัฒนาต้องให้ความสนใจคือการแยกแยะระหว่าง “รูปแบบตัวเลข” (Number Format) ซึ่งกำหนดวิธีการแสดงผลของค่าข้อมูล (เช่น วันที่ YYYY-MM-DD หรือสกุลเงิน $#,##0.00) กับ “สไตล์เซลล์” (Cell Style) ซึ่งเป็นการกำหนดคุณสมบัติทางภาพ เช่น สีพื้นหลัง การจัดแนวข้อความ และขอบเขต การใช้ SDK อย่างถูกต้องจะช่วยให้เราสามารถสร้างชุดรูปแบบที่นำกลับมาใช้ใหม่ได้ (Reusable Styles) ทำให้โค้ดมีความสะอาดและมีประสิทธิภาพสูง
// ตัวอย่างการกำหนดรูปแบบวันที่และสไตล์พื้นหลังใน OpenXML SDK
using DocumentFormat.OpenXml;
using System.Drawing;
// 1. สร้าง Style สำหรับสีพื้นหลัง (Fill) และ Font
var style = new CellStyle();
style.SetCellShading(new Shading() { Fill = new Fill() { PatternFill = new PatternFill(“FFFFFF”) } }); // สีขาว
style.SetFont(new RunProperties() { Bold = true, Size = “12pt” });
// 2. กำหนด Number Format สำหรับวันที่ (Date)
var numberFormat = new NumberingFormats() { NumberFormatId = “d-MMM-yyyy” };
cell.ParagraphProperties.NumberingFormats = numberFormat;
// 3. นำ Style ไปใช้กับเซลล์
cell.ParagraphProperties.ParagraphStyleId = styleId;