Aspose.Words for .NET使用表格教程之應用格式(2)——指定表格和單元格寬度
Aspose.Words For .Net是一種高級Word文檔處理API,用于執行各種文檔管理和操作任務。API支持生成,修改,轉換,呈現和打印文檔,而無需在跨平臺應用程序中直接使用Microsoft Word。此外,API支持所有流行的Word處理文件格式,并允許將Word文檔導出或轉換為固定布局文件格式和最常用的圖像/多媒體格式。
【下載Aspose.Words for .NET最新試用版】
接下來我們將進入“使用格式”的介紹,其中包括應用格式、介紹和創建表、添加和拆分表以及使用列和行。
指定表格和單元格寬度
Microsoft Word文檔中的表格提供了幾種不同的方法來確定表格和單個單元格的大小。這些屬性允許對表的整體外觀和行為進行相當大的控制。本文將深入介紹了表的不同寬度計算屬性如何工作,并提供了可以完全控制表寬度計算方式的信息。
▲表上的不同寬度
表元素提供了幾個不同的屬性,這些屬性可以影響整個表格的寬度以及單個單元格的計算方式。
- 桌面寬度優先
- 單個單元格上的首選寬度
- 允許自動適應表
- 常規單元格寬度
▲使用首選寬度
通過首選的width屬性定義表或單個單元格的所需寬度。這是一個優選的寬度,可以在單個單元格上指定,也可以在整個表格中指定。這是元素努力適應的大小。在某些情況下,可能無法適應這個精確的寬度,但在大多數情況下,實際寬度將接近此值。
首選寬度屬性可以用以下幾種方式之一表示:
寬度類型 | 行為 |
Absolute | 這將元素與給定的寬度(以點為單位)相匹配。 |
Percent | 匹配窗口或容器大小中可用空間的相對元素。如果可用的寬度發生變化,那么該表將自動增長或收縮以反映這些變化。 |
Auto | 這與沒有首選寬度集是一樣的。在這種情況下,元素的大小是使用屬于表的其他元素之一來計算的,而表中確實有一個大小集。 |
該表可以描述為適合頁面上100%的可用空間。在這種情況下,這意味著該表將嘗試占據左右頁邊距之間的空間。上表中的單元格可以這樣描述:
- 第一個單元格的寬度設置為40個點。即使調整表格大小或刪除其他單元格,此寬度也不應發生變化。
- 第二個單元格被指定為占用表格中20%的可用空間。這意味著如果更改了表格大小,則此單元格的寬度也應更改以反映此情況。
- 第三個單元格定義為auto或“width not defined”。這意味著使用表的其他大小信息計算單元格的寬度。通常,這樣的單元格將占用表格中的剩余空間。
在Aspose.Words中,上面描述的大小調整模式可以在PreferredWidthType枚舉下找到,并使用Table.PreferredWidth屬性和CellFormat.PreferredWidth屬性進行設置。
通過使用PreferredWidth類的方法設置適當的首選寬度類型和值。例如,要從點指定寬度,可以使用PreferredWidth.FromPoints方法。要指定百分比寬度,請使用PreferredWidth.FromPercent。最后要指定auto或“no preferred width”,您將使用PreferredWidth.Auto。
在Aspose.Words中指定表上的首選寬度
使用Table.PreferredWidth屬性將調整其相對于容器的首選寬度(即頁面,文本列或外部表格單元格)。下面的示例顯示如何將表設置為自動適合頁面寬度的50%:
Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); // 插入一個寬度占頁面寬度一半的表 Table table = builder.StartTable(); //插入一些單元格 builder.InsertCell(); table.PreferredWidth = PreferredWidth.FromPercent(50); builder.Writeln("Cell #1"); builder.InsertCell(); builder.Writeln("Cell #2"); builder.InsertCell(); builder.Writeln("Cell #3"); dataDir = dataDir + "Table.PreferredWidth_out.doc"; //將文檔保存到磁盤 doc.Save(dataDir);
指定單元格上的首選寬度
在給定單元格上使用CellFormat.PreferredWidth屬性將調整其首選寬度。下面的示例顯示了如何設置不同的首選寬度設置:
Document doc = new Document(); DocumentBuilder builder = new DocumentBuilder(doc); //插入由三個具有不同首選寬度的單元格組成的表行。 Table table = builder.StartTable(); //插入一個絕對大小的單元格。 builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPoints(40); builder.CellFormat.Shading.BackgroundPatternColor = Color.LightYellow; builder.Writeln("Cell at 40 points width"); //插入一個相對大小(百分比)的單元格。 builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20); builder.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue; builder.Writeln("Cell at 20% width"); //插入一個自動大小的單元格。 builder.InsertCell(); builder.CellFormat.PreferredWidth = PreferredWidth.Auto; builder.CellFormat.Shading.BackgroundPatternColor = Color.LightGreen; builder.Writeln("Cell automatically sized. The size of this cell is calculated from the table preferred width."); builder.Writeln("In this case the cell will fill up the rest of the available space."); dataDir = dataDir + "Table.CellPreferredWidths_out.doc"; //將文檔保存到磁盤。 doc.Save(dataDir);
查找表或單元格的首選寬度類型和值
使用PreferredWidth.Type和PreferredWidth.Value屬性來查找所需表或單元格的首選寬度詳細信息。 下面的示例演示如何檢索表格單元格的首選寬度類型:
Document doc = new Document(dataDir + "Table.SimpleTable.doc"); //檢索文檔中的第一個表。 Table table = (Table)doc.GetChild(NodeType.Table, 0, true); table.AllowAutoFit = true; Cell firstCell = table.FirstRow.FirstCell; PreferredWidthType type = firstCell.CellFormat.PreferredWidth.Type; double value = firstCell.CellFormat.PreferredWidth.Value;
允許AutoFit
該Table.AllowAutoFit屬性使表中的細胞生長和收縮,以適應其內容。此屬性可以與首選單元格寬度結合使用,以格式化自動適合其內容但也具有初始寬度的單元格。如果需要,單元寬度可以超過該寬度。下面的示例演示如何設置表以縮小或增大每個單元格以容納其內容:
table.AllowAutoFit = true;
使用單元格寬度
在Aspose.Words中,CellFormat對象還提供了width屬性。此屬性主要保留在以前的版本中,但它仍然可用作簡化設置單元格寬度的方法。此屬性現在的行為會有所不同,具體取決于表中已存在的其他寬度屬性:
- 如果單元格的首選寬度為PreferredWidthType.Auto類型(沒有設置首選寬度),則會復制CellFormat.Width中的值,并成為單元格的首選寬度(以磅為單位)。
- 如果單元格的首選單元格首選寬度為PreferredWidthType.Percent,則忽略對CellFormat.Width的任何更改。
- 如果單元格已具有PreferredWidthType.Points類型的首選寬度,則忽略對CellFormat.Width的任何更改。也就是說,對width屬性的任何更改都不會以首選寬度更新,而應該應用于首選寬度。*如果表啟用了Table.AllowAutoFit,則忽略CellFormat.Width值的任何更改,并且單元格適合于它的內容相反。
單元寬度計算中的優先順序
在計算單元格寬度時,Aspose.Words使用以下順序。
順序 | 屬性 | 描述 |
1 | CellFormat.PreferredWidth | 理想情況下,首選寬度用于計算單元大小。 |
2 | Table.AllowAutoFit | 如果允許自動匹配,則表可能會超過首選寬度以容納內容。通常它不會收縮到首選寬度以下。 |
3 | CellFormat.Width | 如果上述兩個設置均不存在,則使用CellFormat.Width下定義的寬度。 |
*想要獲取Aspose.Words正版授權可聯系哦~
ASPOSE技術交流QQ群已開通,各類資源及時分享,歡迎交流討論!(掃描下方二維碼加入群聊)