適用表格格式化
每個表格元素都可以應用不同的格式化處理。 例如,表格格式將適用於整個表格,而行格式僅適用於特定行,而單元格格式僅適用於某些單元格。
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的子節點。 同時,Cell 中必須至少有一個 Paragraph 的存在,以便可以對它進行格式化。
除了 Paragraph ،你也可以在 Cell 中插入一個 Table。
下面的圖片顯示了 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 屬性來找到所需的表格或 komór 的首選寬度詳細資料。
以下程式碼範例示範如何取得表格細胞的首選寬度類型:
如何設定自動調整?
AllowAutoFit屬性允許表格中的細胞根據選定的準則來成長和縮小。 例如,您可以使用 自動調整到視窗 選項將表格調整為頁面的寬度,並使用 自動符合內容 選項允許每個單元格根據其內容增長或縮減。
預設 Aspose.Words 會插入新的表格,使用 自動適應窗口。 桌子會根據可用頁面寬度而調整大小。 若要調整表格的大小,您可以呼叫 AutoFit 方法。 此方法接受一個 AutoFitBehavior 列舉值,指定對表格應用何種自動調整。
很重要的一點是,自動調整方法其實是一個縮路,它會將不同的屬性同時套用到表格上。 這些是實際讓表格表現出所觀察的行為的特性。 我們將討論每個自動調整選項的這些性質。
以下範例示範如何設定表格,讓其根據各單元內容而縮小或擴大:
自動調整表格至視窗
當自動調整到一個窗口適用於一個表格時,接下來這些操作实际上是在後台執行的:
- Table.AllowAutoFit 屬性已啟用,以自動調整列以適應可用內容,使用 Table.PreferredWidth 值 100%。
- CellFormat.PreferredWidth 從所有表格單元格中移除了
請注意,這與 Microsoft Word 的動作略有不同,在這種情況下,每個單元格首選的寬度會根據其當前的大小和內容而設定適當的值。 Aspose.Words 不會更新首選寬度,因此它們只會被清除。3。 列寬度會重新計算給當前的表格內容 – 最終結果是一個佔據所有可用寬度的表格。
- 表格中的欄位寬度會隨著使用者編輯文字而自動變更。
以下範例示範了如何自動調整表格以符合頁面寬度:
自動調整表格至內容
當資料表自動調整時,實際執行的步驟如下:
- Table.AllowAutoFit屬性會自動使每個細胞根據其內容而變大。
2。 首選的表格寬度從 Table.PreferredWidth 中移除了, CellFormat.PreferredWidth 每個表格單元格都移除了
3。 列寬度會重新計算給當前表格內容–最終結果是一個表格,其中列寬度和整個表格寬度會自動調整以最佳地適合內容,因為使用者編輯文本。
以下範例說明如何自動將表格調整為其內容:
在表中禁用自動調整功能並使用固定欄寬
如果一張桌子已禁用自動調整,而固定列寬被用來使用,以下步驟將被執行:
- Table.AllowAutoFit 屬性被停用,因此欄位不會隨著內容增長或縮小。
2。 整張桌子的首選寬度已被移除,所有桌子單元格中Table.PreferredWidth、CellFormat.PreferredWidth已被移除。 3。 最終結果是一張桌子,其欄寬由 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 中的Cell Spacing選項相似。 這可以用 AllowCellSpacing 屬性來做。
這些選項如何套用到一張真實的文件中的表格,可以看下面的圖。
以下範例示範了如何設定細胞之間的間距:
应用边框和阴影
邊界和陰影可以透過 Table.SetBorder、Table.SetBorders 和 Table.SetShading 來應用到整個表格,或僅透過 CellFormat.Borders 和 CellFormat.Shading 來應用到特定的單元格。 此外,透過 RowFormat.Borders 可設定列邊框,但無法以此方式來做陰影。
下面的圖片顯示了 Microsoft Word 中的邊框和陰影設定及其在 Aspose.Words 中的對應屬性。
以下範例展示了如何以不同的邊界與陰影來格式化表格和細胞: