PlusMagi's Blog By Pitt Phunsanit Programming รูปแบบตารางอัตโนมัติใน Microsoft Word

รูปแบบตารางอัตโนมัติใน Microsoft Word

เบื้องหลังการจัดรูปแบบตารางอัตโนมัติใน 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 Theme
    RGB_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 RowfirstRow="1"type="firstRow"เปลี่ยนสีพื้นหลัง, ตัวหนา, ล็อก Repeat Header
Total RowlastRow="1"type="lastRow"ใช้เส้นขอบคู่ด้านล่าง, เส้นเดี่ยวด้านบน, ตัวหนา
First ColumnfirstColumn="1"type="firstCol"เน้นคีย์หรือหัวข้อรายการทางซ้ายมือ
Last ColumnlastColumn="1"type="lastCol"เน้นตัวเลขผลรวมแนวตั้ง
Banded RowsnoHBand="0"type="band1H", band2Hแรเงาแถวสลับ (Zebra striping) ช่วยการอ่าน
Banded ColumnsnoVBand="0"type="band1V", band2Vแรเงาคอลัมน์สลับสำหรับการเปรียบเทียบข้อมูล

ลำดับความสำคัญในการเรนเดอร์ (Specificity Resolution)
เมื่อเซลล์หนึ่งอยู่ในจุดตัดของหลายเงื่อนไข เช่น เซลล์แรกสุดซ้ายบน (ทั้ง firstRow และ firstCol) Word มีลำดับการ Resolve รูปแบบทับซ้อนดังนี้

  1. คุณสมบัติพื้นฐานทั้งตาราง (Whole Table)
  2. แถบสลับแนวตั้งและแนวนอน (band1H, band1V)
  3. คอลัมน์แรกและคอลัมน์สุดท้าย (firstCol, lastCol)
  4. แถวแรกและแถวสุดท้าย (firstRow, lastRow)
  5. เซลล์มุมตัดเฉพาะ (neCell, nwCell, seCell, swCell)
  6. การจัดรูปแบบเฉพาะจุดระดับเซลล์ (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 มีความยืดหยุ่นและเป็นมาตรฐานเดียวกันทั้งระบบ


อ่านเพิ่มเติม