ใช้การจัดรูปแบบตาราง
แต่ละองค์ประกอบของตารางสามารถใช้กับการจัดรูปแบบที่แตกต่างกันได้ ตัวอย่างเช่น การจัดรูปแบบตารางจะมีผลกับทั้งตาราง การจัดรูปแบบแถวเฉพาะบางแถว การจัดรูปแบบเซลล์เฉพาะบางเซลล์
Aspose.Words มี API ที่หลากหลายเพื่อดึงข้อมูลและใช้การจัดรูปแบบกับตาราง คุณสามารถใช้โหนด Table, RowFormat และ CellFormat เพื่อตั้งค่าการจัดรูปแบบได้
ในบทความนี้ เราจะพูดถึงวิธีนำการจัดรูปแบบไปใช้กับโหนดตารางต่างๆ และการตั้งค่าการจัดรูปแบบตารางที่ Aspose.Words รองรับ
ใช้การจัดรูปแบบกับโหนดต่างๆ
ในส่วนนี้ เราจะดูการนำการจัดรูปแบบไปใช้กับโหนดตารางต่างๆ
การจัดรูปแบบระดับตาราง
หากต้องการใช้การจัดรูปแบบกับตาราง คุณสามารถใช้คุณสมบัติที่มีอยู่ในโหนด Table ที่เกี่ยวข้องได้โดยใช้คลาส Table, PreferredWidth และ TableCollection
รูปภาพด้านล่างแสดงคุณลักษณะการจัดรูปแบบ Table ใน Microsoft Word และคุณสมบัติที่เกี่ยวข้องใน Aspose.Words
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการใช้เส้นขอบเค้าร่างกับตาราง:
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการสร้างตารางโดยเปิดใช้งานเส้นขอบทั้งหมด (กริด):
การจัดรูปแบบระดับแถว
การจัดรูปแบบ ระดับแถว สามารถควบคุมได้โดยใช้คลาส Row, RowFormat และ RowCollection
รูปภาพด้านล่างแสดงคุณลักษณะการจัดรูปแบบ Row ใน Microsoft Word และคุณสมบัติที่เกี่ยวข้องใน Aspose.Words
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการแก้ไขการจัดรูปแบบแถวของตาราง:
การจัดรูปแบบระดับเซลล์
การจัดรูปแบบระดับเซลล์ถูกควบคุมโดยคลาส Cell, CellFormat และ CellCollection
โปรดทราบว่า Cell สามารถเป็นโหนดย่อยของ Row เท่านั้น ในเวลาเดียวกัน จะต้องมี Paragraph อย่างน้อยหนึ่งรายการใน Cell เพื่อให้สามารถใช้การจัดรูปแบบได้
นอกจาก Paragraph แล้ว คุณยังสามารถแทรก Table ลงใน Cell ได้อีกด้วย
รูปภาพด้านล่างแสดงคุณลักษณะการจัดรูปแบบ Cell ใน Microsoft Word และคุณสมบัติที่เกี่ยวข้องใน Aspose.Words
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการปรับเปลี่ยนการจัดรูปแบบของเซลล์ตาราง:
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตั้งค่าจำนวนช่องว่าง (เป็นจุด) เพื่อเพิ่มไปทางซ้าย/บน/ขวา/ล่างของเนื้อหาในเซลล์:
ระบุความสูงของแถว
วิธีที่ง่ายที่สุดในการตั้งค่าความสูงของแถวคือการใช้ DocumentBuilder เมื่อใช้คุณสมบัติ RowFormat ที่เหมาะสม คุณสามารถตั้งค่าความสูงเริ่มต้นหรือใช้ความสูงที่แตกต่างกันสำหรับแต่ละแถวในตารางได้
ใน Aspose.Words ความสูงของแถวตารางจะถูกควบคุมโดย:
- คุณสมบัติความสูงของแถว - Height
- คุณสมบัติกฎความสูงสำหรับแถวที่กำหนด – HeightRule
ในเวลาเดียวกัน คุณสามารถตั้งค่าความสูงที่แตกต่างกันสำหรับแต่ละแถวได้ ซึ่งช่วยให้คุณควบคุมการตั้งค่าตารางได้อย่างกว้างขวาง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีสร้างตารางที่มีเซลล์เดียวและใช้การจัดรูปแบบแถว:
ระบุความกว้างของตารางและเซลล์
ตารางในเอกสาร Microsoft Word มีวิธีปรับขนาดตารางและเซลล์แต่ละเซลล์หลายวิธี คุณสมบัติเหล่านี้ช่วยให้สามารถควบคุมลักษณะที่ปรากฏและการทำงานของตารางได้อย่างมาก ดังนั้น Aspose.Words จึงสนับสนุนลักษณะการทำงานของตาราง เช่นเดียวกับใน Microsoft Word
สิ่งสำคัญคือต้องทราบว่าองค์ประกอบของตารางมีคุณสมบัติที่แตกต่างกันหลายประการ ซึ่งอาจส่งผลต่อวิธีคำนวณความกว้างของตารางโดยรวม รวมถึงแต่ละเซลล์:
- ความกว้างที่ต้องการบนโต๊ะ
- ความกว้างที่ต้องการในแต่ละเซลล์
- อนุญาตให้ปรับอัตโนมัติบนโต๊ะ
บทความนี้ให้รายละเอียดเกี่ยวกับวิธีการทำงานของคุณสมบัติการคำนวณความกว้างของตารางต่างๆ และวิธีการควบคุมการคำนวณความกว้างของตารางอย่างสมบูรณ์ นี่คือ มีประโยชน์อย่างยิ่งที่จะทราบในกรณีที่เค้าโครงตารางไม่ปรากฏตามที่คาดไว้
ในกรณีส่วนใหญ่ เซลล์ที่ต้องการจะแนะนำมากกว่าความกว้างของตาราง ความกว้างของเซลล์ที่ต้องการจะสอดคล้องกับข้อกำหนดรูปแบบ DOCX และรุ่น Aspose.Words มากกว่า
จริงๆ แล้วความกว้างของเซลล์เป็นค่าที่คำนวณได้สำหรับรูปแบบ DOCX ความกว้างของเซลล์จริงอาจขึ้นอยู่กับหลายสิ่งหลายอย่าง ตัวอย่างเช่น การเปลี่ยนแปลงระยะขอบหน้าหรือความกว้างของตารางที่ต้องการอาจส่งผลต่อความกว้างของเซลล์จริง
ความกว้างของเซลล์ที่ต้องการคือคุณสมบัติของเซลล์ที่จัดเก็บไว้ในเอกสาร มันไม่ได้ขึ้นอยู่กับสิ่งใดๆ และไม่เปลี่ยนแปลงเมื่อคุณเปลี่ยนตารางหรือคุณสมบัติอื่นๆ ของเซลล์
วิธีใช้ความกว้างที่ต้องการ
ความกว้างที่ต้องการของตารางหรือแต่ละเซลล์ถูกกำหนดผ่านคุณสมบัติความกว้างที่ต้องการ ซึ่งเป็นขนาดที่องค์ประกอบพยายามทำให้พอดี นั่นคือสามารถระบุความกว้างที่ต้องการสำหรับทั้งตารางหรือแต่ละเซลล์ได้ ในบางสถานการณ์ อาจไม่สามารถปรับให้พอดีกับความกว้างนี้ได้ แต่ความกว้างจริงจะใกล้เคียงกับค่านี้ในกรณีส่วนใหญ่
ประเภทความกว้างที่ต้องการและค่าที่เหมาะสมได้รับการตั้งค่าโดยใช้วิธีการของคลาส PreferredWidth:
- วิธี Auto เพื่อระบุอัตโนมัติหรือ “ไม่มีความกว้างที่ต้องการ”
- วิธี FromPercent เพื่อระบุความกว้างเป็นเปอร์เซ็นต์
- วิธี FromPoints เพื่อระบุความกว้างเป็นจุด
รูปภาพด้านล่างแสดง คุณลักษณะการตั้งค่าความกว้างที่ต้องการ ใน Microsoft Word และคุณสมบัติที่เกี่ยวข้องใน Aspose.Words
ตัวอย่างการใช้ตัวเลือกเหล่านี้กับตารางจริงในเอกสารสามารถดูได้จากภาพด้านล่าง
ระบุตารางที่ต้องการหรือความกว้างของเซลล์
ใน Aspose.Words ความกว้างของตารางและเซลล์จะถูกตั้งค่าโดยใช้คุณสมบัติ Table.PreferredWidth และคุณสมบัติ CellFormat.PreferredWidth โดยมีตัวเลือกในการแจงนับ PreferredWidthType:
- Auto ซึ่งเทียบเท่ากับชุดความกว้างที่ต้องการ
- Percent ซึ่งปรับองค์ประกอบให้สัมพันธ์กับพื้นที่ว่างในหน้าต่างหรือขนาดคอนเทนเนอร์ และคำนวณค่าใหม่เมื่อความกว้างที่มีอยู่เปลี่ยนไป
- Points ซึ่งสอดคล้องกับองค์ประกอบของความกว้างที่ระบุเป็นจุด
การใช้คุณสมบัติ Table.PreferredWidth จะปรับความกว้างที่ต้องการโดยสัมพันธ์กับคอนเทนเนอร์: หน้า คอลัมน์ข้อความ หรือเซลล์ตารางด้านนอก หากเป็นตารางที่ซ้อนกัน
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตั้งค่าตารางให้พอดีอัตโนมัติถึง 50% ของความกว้างของหน้า:
การใช้คุณสมบัติ CellFormat.PreferredWidth บนเซลล์ที่กำหนดจะปรับความกว้างที่ต้องการ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตั้งค่าความกว้างที่ต้องการ:
ค้นหาประเภทและค่าความกว้างที่ต้องการ
คุณสามารถใช้คุณสมบัติ Type และ Value เพื่อค้นหารายละเอียดความกว้างที่ต้องการของตารางหรือเซลล์ที่ต้องการ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการดึงข้อมูลประเภทความกว้างที่ต้องการของเซลล์ตาราง:
วิธีการตั้งค่าการปรับพอดีอัตโนมัติ
คุณสมบัติ AllowAutoFit ช่วยให้เซลล์ในตารางขยายและลดขนาดตามเกณฑ์ที่เลือก ตัวอย่างเช่น คุณสามารถใช้ตัวเลือก ปรับให้พอดีอัตโนมัติกับหน้าต่าง เพื่อปรับตารางให้พอดีกับความกว้างของหน้า และใช้ตัวเลือก ปรับให้พอดีอัตโนมัติกับเนื้อหา เพื่อให้แต่ละเซลล์ขยายหรือย่อตามเนื้อหาได้
ตามค่าเริ่มต้น Aspose.Words จะแทรกตารางใหม่โดยใช้ ปรับให้พอดีอัตโนมัติกับหน้าต่าง ตารางจะมีขนาดตามความกว้างของหน้าที่มีอยู่ หากต้องการปรับขนาดตาราง คุณสามารถเรียกใช้เมธอด AutoFit ได้ เมธอดนี้ยอมรับการแจงนับ AutoFitBehavior ที่ระบุประเภทของการปรับพอดีอัตโนมัติที่จะใช้กับตาราง
สิ่งสำคัญคือต้องรู้ว่าจริงๆ แล้ววิธีการปรับให้พอดีอัตโนมัตินั้นเป็นทางลัดที่ใช้คุณสมบัติที่แตกต่างกันกับตารางในเวลาเดียวกัน สิ่งเหล่านี้เป็นคุณสมบัติที่ทำให้ตารางมีพฤติกรรมที่สังเกตได้จริง เราจะพูดถึงคุณสมบัติเหล่านี้สำหรับตัวเลือกการปรับอัตโนมัติแต่ละรายการ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตั้งค่าตารางให้ย่อหรือขยายแต่ละเซลล์ตามเนื้อหา:
ปรับตารางให้พอดีอัตโนมัติกับหน้าต่าง
เมื่อปรับใช้การปรับหน้าต่างอัตโนมัติกับตาราง การดำเนินการต่อไปนี้จะดำเนินการเบื้องหลังจริง:
- คุณสมบัติ Table.AllowAutoFit ถูกเปิดใช้งานเพื่อปรับขนาดคอลัมน์โดยอัตโนมัติเพื่อให้พอดีกับเนื้อหาที่มีอยู่ โดยใช้ค่า Table.PreferredWidth 100%
- CellFormat.PreferredWidth จะถูกลบออกจากเซลล์ตารางทั้งหมด
โปรดทราบว่าสิ่งนี้แตกต่างจากลักษณะการทำงานของ Microsoft Word เล็กน้อย โดยที่ความกว้างที่ต้องการของแต่ละเซลล์จะถูกตั้งค่าให้เหมาะสมตามขนาดและเนื้อหาปัจจุบัน Aspose.Words ไม่อัปเดตความกว้างที่ต้องการ ดังนั้นจึงเพิ่งถูกล้างข้อมูลแทน
- ความกว้างของคอลัมน์จะถูกคำนวณใหม่สำหรับเนื้อหาตารางปัจจุบัน – ผลลัพธ์สุดท้ายคือตารางที่ใช้ความกว้างที่มีอยู่ทั้งหมด
- ความกว้างของคอลัมน์ในตารางจะเปลี่ยนโดยอัตโนมัติเมื่อผู้ใช้แก้ไขข้อความ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการปรับตารางให้พอดีกับความกว้างของหน้าโดยอัตโนมัติ:
ปรับตารางให้พอดีอัตโนมัติกับเนื้อหา
เมื่อตารางถูกปรับเนื้อหาให้เหมาะสมโดยอัตโนมัติ ขั้นตอนต่อไปนี้จะดำเนินการเบื้องหลังจริง:
-
คุณสมบัติ Table.AllowAutoFit ถูกเปิดใช้งานเพื่อปรับขนาดแต่ละเซลล์โดยอัตโนมัติตามเนื้อหา
-
ความกว้างของตารางที่ต้องการจะถูกลบออกจาก Table.PreferredWidth, CellFormat.PreferredWidth จะถูกลบสำหรับแต่ละเซลล์ของตาราง
โปรดทราบว่าตัวเลือกการปรับพอดีอัตโนมัตินี้จะลบความกว้างที่ต้องการออกจากเซลล์ เช่นเดียวกับใน Microsoft Word หากคุณต้องการคงขนาดคอลัมน์และเพิ่มหรือลดคอลัมน์เพื่อให้พอดีกับเนื้อหา คุณควรตั้งค่าคุณสมบัติ Table.AllowAutoFit เป็น True เพียงอย่างเดียว แทนที่จะใช้ทางลัดให้พอดีอัตโนมัติ -
ความกว้างของคอลัมน์จะถูกคำนวณใหม่สำหรับเนื้อหาตารางปัจจุบัน ผลลัพธ์สุดท้ายคือตารางที่ความกว้างของคอลัมน์และความกว้างของทั้งตารางจะถูกปรับขนาดโดยอัตโนมัติเพื่อให้พอดีกับเนื้อหามากที่สุดเมื่อผู้ใช้แก้ไขข้อความ
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการปรับตารางให้พอดีกับเนื้อหาโดยอัตโนมัติ:
ปิดใช้งานการปรับพอดีอัตโนมัติในตารางและใช้ความกว้างของคอลัมน์คงที่
หากตารางปิดใช้งานการปรับพอดีอัตโนมัติและใช้ความกว้างของคอลัมน์คงที่แทน ให้ดำเนินการตามขั้นตอนต่อไปนี้:
-
คุณสมบัติ Table.AllowAutoFit ถูกปิดใช้งาน ดังนั้นคอลัมน์จะไม่ขยายหรือย่อขนาดเนื้อหา
-
ความกว้างที่ต้องการของทั้งตารางจะถูกลบออกจาก Table.PreferredWidth, CellFormat.PreferredWidth จะถูกลบออกจากเซลล์ตารางทั้งหมด
-
ผลลัพธ์สุดท้ายคือตารางที่มีความกว้างของคอลัมน์ถูกกำหนดโดยคุณสมบัติ CellFormat.Width และคอลัมน์จะไม่ถูกปรับขนาดโดยอัตโนมัติเมื่อผู้ใช้ป้อนข้อความหรือเมื่อปรับขนาดหน้า
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการปิดใช้งานการปรับพอดีอัตโนมัติและเปิดใช้งานความกว้างคงที่สำหรับตารางที่ระบุ:
ลำดับความสำคัญเมื่อคำนวณความกว้างของเซลล์
Aspose.Words ช่วยให้ผู้ใช้สามารถกำหนดความกว้างของตารางหรือเซลล์ผ่านวัตถุหลายชิ้น รวมถึง CellFormat ด้วย คุณสมบัติ Width ส่วนใหญ่จะเหลือจากเวอร์ชันก่อนหน้า อย่างไรก็ตาม ยังคงมีประโยชน์ในการตั้งค่าความกว้างของเซลล์ให้ง่ายขึ้น
สิ่งสำคัญคือต้องทราบว่าคุณสมบัติ CellFormat.Width ทำงานแตกต่างกัน ขึ้นอยู่กับคุณสมบัติความกว้างอื่นๆ ที่มีอยู่แล้วในตาราง
Aspose.Words ใช้ลำดับต่อไปนี้ในการคำนวณความกว้างของเซลล์:
คำสั่ง | คุณสมบัติ | คำอธิบาย |
---|---|---|
1 | AllowAutoFit ถูกกำหนดแล้ว | หากเปิดใช้งาน AutoFit: - ตารางอาจขยายเกินความกว้างที่ต้องการเพื่อรองรับเนื้อหา โดยปกติแล้วจะไม่หดตัวต่ำกว่าความกว้างที่ต้องการ - การเปลี่ยนแปลงใดๆ ที่เกิดขึ้นกับค่า CellFormat.Width จะถูกละเว้น และเซลล์จะพอดีกับเนื้อหาแทน |
2 | PreferredWidthType ที่มีค่า Points หรือ Percent | CellFormat.Width จะถูกละเว้น |
3 | PreferredWidthType ที่มีค่าเป็น Auto | คัดลอกค่าจาก CellFormat.Width และกลายเป็นความกว้างที่ต้องการของเซลล์ (เป็นพอยต์) |
อนุญาตให้มีระยะห่างระหว่างเซลล์
คุณสามารถรับหรือตั้งค่าช่องว่างเพิ่มเติมระหว่างเซลล์ตารางได้คล้ายกับตัวเลือก “ระยะห่างเซลล์” ใน Microsoft Word ซึ่งสามารถทำได้โดยใช้คุณสมบัติ AllowCellSpacing
ตัวอย่างการใช้ตัวเลือกเหล่านี้กับตารางจริงในเอกสารสามารถดูได้จากภาพด้านล่าง
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการตั้งค่าระยะห่างระหว่างเซลล์:
ใช้เส้นขอบและการแรเงา
เส้นขอบและการแรเงาสามารถนำไปใช้กับทั้งตารางโดยใช้ Table.SetBorder, Table.SetBorders และ Table.SetShading หรือเฉพาะกับเซลล์ที่ระบุโดยใช้ CellFormat.Borders และ CellFormat.Shading นอกจากนี้ คุณสามารถตั้งค่าเส้นขอบแถวได้โดยใช้ RowFormat.Borders แต่ไม่สามารถใช้การแรเงาในลักษณะนี้ได้
รูปภาพด้านล่างแสดงการตั้งค่าเส้นขอบและเงาใน Microsoft Word และคุณสมบัติที่เกี่ยวข้องใน Aspose.Words
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีจัดรูปแบบตารางและเซลล์ที่มีเส้นขอบและแรเงาต่างกัน: