เบื้องหลังการจัดรูปแบบตารางอัตโนมัติใน Microsoft Word อาศัยสถาปัตยกรรม Office Open XML (OOXML / ECMA-376) ที่ออกแบบมาให้แยกตรรกะการจัดวาง โครงสร้างข้อมูล และสไตล์การแสดงผลออกจากกันอย่างเป็นระบบ การทำความเข้าใจโครงสร้างเชิงลึกช่วยให้นักพัฒนาระบบเอกสารหรือ Template Designer สามารถควบคุมและสร้าง Custom Table Styles ได้อย่างแม่นยำ
สถาปัตยกรรมระดับไฟล์และโครงสร้าง OpenXML
ภายในโครงสร้างไฟล์ .docx (Zip Package) สไตล์ตารางจะถูกบันทึกไว้ในพาธ word/styles.xml ภายใต้โหนด <w:style> ประเภท type="table"
- Whole Table Properties (
<w:tblPr>,<w:tcPr>,<w:pPr>,<w:rPr>)
กฎพื้นฐานระดับค่าเริ่มต้น ครอบคลุมเส้นขอบรวม (Borders), ระยะขอบเซลล์ (Cell Margins), ขนาดและสีตัวอักษรพื้นฐาน - Conditional Formatting Blocks (
<w:tblStylePr>)
กฎย่อยที่เปิด-ปิดตามการตั้งค่า Table Style Options บนแถบ Ribbon - Inheritance Model (
<w:basedOn>)
สไตล์ตารางส่วนใหญ่จะสืบทอดคุณสมบัติมาจากTable Normal(ตารางพื้นฐานไร้เส้นและสี) เพื่อลดความซ้ำซ้อนของคำจำกัดความ
<w:style w:type="table" w:customStyle="1" w:styleId="EnterpriseDataGrid">
<w:name w:val="Enterprise Data Grid"/>
<w:basedOn w:val="TableNormal"/>
<w:uiPriority w:val="15"/>
<!-- ค่าเริ่มต้นทั้งตาราง -->
<w:tblPr>
<w:tblBorders>
<w:top w:val="single" w:sz="4" w:space="0" w:color="auto" w:themeColor="accent1"/>
<w:bottom w:val="single" w:sz="6" w:space="0" w:color="auto" w:themeColor="accent1"/>
<w:insideH w:val="single" w:sz="4" w:space="0" w:color="E7E6E6"/>
</w:tblBorders>
</w:tblPr>
<!-- เงื่อนไขเฉพาะแถวหัวตาราง (Header Row) -->
<w:tblStylePr w:type="firstRow">
<w:rPr>
<w:b/>
<w:color w:val="FFFFFF" w:themeColor="light1"/>
</w:rPr>
<w:tcPr>
<w:shd w:val="clear" w:color="auto" w:fill="0F6CBD" w:themeColor="accent1"/>
</w:tcPr>
</w:tblStylePr>
</w:style>
ระบบสีเชิงสัญลักษณ์และอัลกอริทึม Tint & Shade
จุดเด่นของระบบ Word Table Styles คือการไม่ผูกค่าสีแบบ Hardcoded (Hex ตรง ๆ ) แต่ใช้วิธี Theme Color Binding ร่วมกับการแปลงความสว่างผ่านตัวคูณเลขฐานสิบหก 1 ไบต์ (ช่วง 00 ถึง FF หรือ 0 ถึง 255)
w:themeColor
ผูกตัวแปรสีหลักเข้ากับ Theme ของเอกสาร (accent1ถึงaccent6,dark1,light1,dark2,light2)w:themeTint(การผสมสีขาว)
ใช้สร้างสีพื้นหลังแถวสลับ (Banded Rows) หรือเส้นกรอบตารางอ่อน ๆ โดยคำนวณผ่านสูตรRGB_new = RGB_base + (255 - RGB_base) × (Tint / 255)w:themeShade(การผสมสีดำ)
ใช้สร้างความลึกของแถบ Total Row หรือเส้นขอบตารางเข้มใน Dark ThemeRGB_new = RGB_base × (Shade / 255)
การออกแบบนี้ทำให้เมื่อผู้ใช้งานเปลี่ยน Document Theme สีของทุกตารางในเอกสารจะถูก Re-calculate และอัปเดตโทนสีทันทีโดยที่โครงสร้างตารางไม่เสียหาย
ระบบ Conditional Formatting Flags และลำดับความสำคัญ (Cascade Order)
ในไฟล์เนื้อหา word/document.xml แท็ก <w:tblLook> จะทำหน้าที่เก็บค่าบิตแฟล็กเพื่อเปิดหรือปิดคุณสมบัติต่าง ๆ ตามที่ผู้ใช้เลือกใน Table Style Options:
| คุณสมบัติ | Attribute ใน w:tblLook | รหัสพื้นที่ใน w:tblStylePr | ฟังก์ชันการทำงาน |
|---|---|---|---|
| Header Row | firstRow="1" | type="firstRow" | เปลี่ยนสีพื้นหลัง, ตัวหนา, ล็อก Repeat Header |
| Total Row | lastRow="1" | type="lastRow" | ใช้เส้นขอบคู่ด้านล่าง, เส้นเดี่ยวด้านบน, ตัวหนา |
| First Column | firstColumn="1" | type="firstCol" | เน้นคีย์หรือหัวข้อรายการทางซ้ายมือ |
| Last Column | lastColumn="1" | type="lastCol" | เน้นตัวเลขผลรวมแนวตั้ง |
| Banded Rows | noHBand="0" | type="band1H", band2H | แรเงาแถวสลับ (Zebra striping) ช่วยการอ่าน |
| Banded Columns | noVBand="0" | type="band1V", band2V | แรเงาคอลัมน์สลับสำหรับการเปรียบเทียบข้อมูล |
ลำดับความสำคัญในการเรนเดอร์ (Specificity Resolution)
เมื่อเซลล์หนึ่งอยู่ในจุดตัดของหลายเงื่อนไข เช่น เซลล์แรกสุดซ้ายบน (ทั้ง firstRow และ firstCol) Word มีลำดับการ Resolve รูปแบบทับซ้อนดังนี้
- คุณสมบัติพื้นฐานทั้งตาราง (
Whole Table) - แถบสลับแนวตั้งและแนวนอน (
band1H,band1V) - คอลัมน์แรกและคอลัมน์สุดท้าย (
firstCol,lastCol) - แถวแรกและแถวสุดท้าย (
firstRow,lastRow) - เซลล์มุมตัดเฉพาะ (
neCell,nwCell,seCell,swCell) - การจัดรูปแบบเฉพาะจุดระดับเซลล์ (
Direct Cell Formatting) ซึ่งมีสิทธิ์สูงสุดเสมอ
การจัดกลุ่มตารางใน Table Styles Gallery
Word จัดหมวดหมู่ตารางมาตรฐานเป็น 3 รูปแบบหลัก เพื่อตอบสนองบริบทการใช้งานที่แตกต่างกัน
- Plain Tables
ตัดคุณสมบัติสีพื้นหลังทั้งหมดออก เหลือเพียงโครงสร้างเส้นกรอบพื้นฐานและข้อความ เหมาะกับเอกสารสัญญาหรือฟอร์มทางการ - Grid Tables
ใช้ระบบเส้นกรอบแบบสมบูรณ์ทั้งแนวตั้งและแนวนอน (All Borders) แบ่งระดับความเข้มเป็น Light (เน้นเส้น ไร้สีพื้น), Medium (หัวตารางสีทึบ มีแถวสลับ), และ Dark (คอนทราสต์สูง สลับสีเข้มทั่วตาราง) - List Tables
ลบเส้นตารางแนวตั้งทิ้งทั้งหมด เหลือเฉพาะเส้นแบ่งแนวนอนบน-ล่าง และเส้นใต้ Header เหมาะกับการแสดงข้อมูลสถิติหรือแดชบอร์ดที่ต้องการความโปร่งตาแบบ Modern Report
สถาปัตยกรรมของ Table Styles ใน Word จึงเป็นการผสมผสานระหว่างโมเดลสืบทอดแบบ CSS, กลไก Dynamic Theming ผ่านสูตรคณิตศาสตร์ของ OOXML และระบบแฟล็กเงื่อนไข ทำให้การจัดการ Layout ตารางในระดับ Enterprise Template มีความยืดหยุ่นและเป็นมาตรฐานเดียวกันทั้งระบบ
อ่านเพิ่มเติม