• <menu id="w2i4a"></menu>
  • logo Aspose.Words開發(fā)者指南

    文檔首頁>>Aspose.Words開發(fā)者指南>>Aspose.Words for .NET使用表格教程之應(yīng)用格式(2)——指定表格和單元格寬度

    Aspose.Words for .NET使用表格教程之應(yīng)用格式(2)——指定表格和單元格寬度


    Aspose.Words For .Net是一種高級Word文檔處理API,用于執(zhí)行各種文檔管理和操作任務(wù)。API支持生成,修改,轉(zhuǎn)換,呈現(xiàn)和打印文檔,而無需在跨平臺(tái)應(yīng)用程序中直接使用Microsoft Word。此外,API支持所有流行的Word處理文件格式,并允許將Word文檔導(dǎo)出或轉(zhuǎn)換為固定布局文件格式和最常用的圖像/多媒體格式。

    【下載Aspose.Words for .NET最新試用版】

    接下來我們將進(jìn)入“使用格式”的介紹,其中包括應(yīng)用格式、介紹和創(chuàng)建表、添加和拆分表以及使用列和行。

    指定表格和單元格寬度

    Microsoft Word文檔中的表格提供了幾種不同的方法來確定表格和單個(gè)單元格的大小。這些屬性允許對表的整體外觀和行為進(jìn)行相當(dāng)大的控制。本文將深入介紹了表的不同寬度計(jì)算屬性如何工作,并提供了可以完全控制表寬度計(jì)算方式的信息。

    ▲表上的不同寬度


    表元素提供了幾個(gè)不同的屬性,這些屬性可以影響整個(gè)表格的寬度以及單個(gè)單元格的計(jì)算方式。

    • 桌面寬度優(yōu)先
    • 單個(gè)單元格上的首選寬度
    • 允許自動(dòng)適應(yīng)表
    • 常規(guī)單元格寬度

    ▲使用首選寬度


    通過首選的width屬性定義表或單個(gè)單元格的所需寬度。這是一個(gè)優(yōu)選的寬度,可以在單個(gè)單元格上指定,也可以在整個(gè)表格中指定。這是元素努力適應(yīng)的大小。在某些情況下,可能無法適應(yīng)這個(gè)精確的寬度,但在大多數(shù)情況下,實(shí)際寬度將接近此值。

    Aspose.Words使用表格教程之應(yīng)用格式——指定表格和單元格寬度

    首選寬度屬性可以用以下幾種方式之一表示:

    寬度類型
    行為
    Absolute
    這將元素與給定的寬度(以點(diǎn)為單位)相匹配。
    Percent匹配窗口或容器大小中可用空間的相對元素。如果可用的寬度發(fā)生變化,那么該表將自動(dòng)增長或收縮以反映這些變化。
    Auto這與沒有首選寬度集是一樣的。在這種情況下,元素的大小是使用屬于表的其他元素之一來計(jì)算的,而表中確實(shí)有一個(gè)大小集。


    Aspose.Words使用表格教程之應(yīng)用格式——指定表格和單元格寬度

    該表可以描述為適合頁面上100%的可用空間。在這種情況下,這意味著該表將嘗試占據(jù)左右頁邊距之間的空間。上表中的單元格可以這樣描述:

    • 第一個(gè)單元格的寬度設(shè)置為40個(gè)點(diǎn)。即使調(diào)整表格大小或刪除其他單元格,此寬度也不應(yīng)發(fā)生變化。
    • 第二個(gè)單元格被指定為占用表格中20%的可用空間。這意味著如果更改了表格大小,則此單元格的寬度也應(yīng)更改以反映此情況。
    • 第三個(gè)單元格定義為auto或“width not defined”。這意味著使用表的其他大小信息計(jì)算單元格的寬度。通常,這樣的單元格將占用表格中的剩余空間。

    在Aspose.Words中,上面描述的大小調(diào)整模式可以在PreferredWidthType枚舉下找到,并使用Table.PreferredWidth屬性和CellFormat.PreferredWidth屬性進(jìn)行設(shè)置。

    通過使用PreferredWidth類的方法設(shè)置適當(dāng)?shù)氖走x寬度類型和值。例如,要從點(diǎn)指定寬度,可以使用PreferredWidth.FromPoints方法。要指定百分比寬度,請使用PreferredWidth.FromPercent。最后要指定auto或“no preferred width”,您將使用PreferredWidth.Auto。


    在Aspose.Words中指定表上的首選寬度

    使用Table.PreferredWidth屬性將調(diào)整其相對于容器的首選寬度(即頁面,文本列或外部表格單元格)。下面的示例顯示如何將表設(shè)置為自動(dòng)適合頁面寬度的50%:

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    // 插入一個(gè)寬度占頁面寬度一半的表
    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屬性將調(diào)整其首選寬度。下面的示例顯示了如何設(shè)置不同的首選寬度設(shè)置:

    Document doc = new Document();
    DocumentBuilder builder = new DocumentBuilder(doc);
    
    //插入由三個(gè)具有不同首選寬度的單元格組成的表行。
    Table table = builder.StartTable();
    
    //插入一個(gè)絕對大小的單元格。
    builder.InsertCell();
    builder.CellFormat.PreferredWidth = PreferredWidth.FromPoints(40);
    builder.CellFormat.Shading.BackgroundPatternColor = Color.LightYellow;
    builder.Writeln("Cell at 40 points width");
    
    //插入一個(gè)相對大小(百分比)的單元格。
    builder.InsertCell();
    builder.CellFormat.PreferredWidth = PreferredWidth.FromPercent(20);
    builder.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
    builder.Writeln("Cell at 20% width");
    
    //插入一個(gè)自動(dòng)大小的單元格。
    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屬性來查找所需表或單元格的首選寬度詳細(xì)信息。 下面的示例演示如何檢索表格單元格的首選寬度類型:

    Document doc = new Document(dataDir + "Table.SimpleTable.doc");
    
    //檢索文檔中的第一個(gè)表。
    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屬性使表中的細(xì)胞生長和收縮,以適應(yīng)其內(nèi)容。此屬性可以與首選單元格寬度結(jié)合使用,以格式化自動(dòng)適合其內(nèi)容但也具有初始寬度的單元格。如果需要,單元寬度可以超過該寬度。下面的示例演示如何設(shè)置表以縮小或增大每個(gè)單元格以容納其內(nèi)容:

    table.AllowAutoFit = true;

    使用單元格寬度

    在Aspose.Words中,CellFormat對象還提供了width屬性。此屬性主要保留在以前的版本中,但它仍然可用作簡化設(shè)置單元格寬度的方法。此屬性現(xiàn)在的行為會(huì)有所不同,具體取決于表中已存在的其他寬度屬性:

    • 如果單元格的首選寬度為PreferredWidthType.Auto類型(沒有設(shè)置首選寬度),則會(huì)復(fù)制CellFormat.Width中的值,并成為單元格的首選寬度(以磅為單位)。
    • 如果單元格的首選單元格首選寬度為PreferredWidthType.Percent,則忽略對CellFormat.Width的任何更改。
    • 如果單元格已具有PreferredWidthType.Points類型的首選寬度,則忽略對CellFormat.Width的任何更改。也就是說,對width屬性的任何更改都不會(huì)以首選寬度更新,而應(yīng)該應(yīng)用于首選寬度。*如果表啟用了Table.AllowAutoFit,則忽略CellFormat.Width值的任何更改,并且單元格適合于它的內(nèi)容相反。

    單元寬度計(jì)算中的優(yōu)先順序

    在計(jì)算單元格寬度時(shí),Aspose.Words使用以下順序。

    順序屬性描述
    1CellFormat.PreferredWidth理想情況下,首選寬度用于計(jì)算單元大小。
    2Table.AllowAutoFit如果允許自動(dòng)匹配,則表可能會(huì)超過首選寬度以容納內(nèi)容。通常它不會(huì)收縮到首選寬度以下。
    3 CellFormat.Width如果上述兩個(gè)設(shè)置均不存在,則使用CellFormat.Width下定義的寬度。


    *想要獲取Aspose.Words正版授權(quán)可聯(lián)系在線客服哦~


    ASPOSE技術(shù)交流QQ群已開通,各類資源及時(shí)分享,歡迎交流討論!(掃描下方二維碼加入群聊)

    1560231367164.png

    850X100.png


    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();