Aspose.Words對Word的操做

對於word操做通常是對已有word模板的操做,直接新建的不考慮,網上教程不少,本身看吧 通常有如下幾種辦法(忘了具體幾種了,通常狀況下如下就夠了) 一、經過書籤替換 顧名思義,就是先定義一個書籤,而後在書籤的位置填進去相應的數據或圖片,具體操做 1 >先在word上插入->書籤->定義書籤名 2 >在程序中使用ui

Document doc = new Document(tmppath); //載入模板
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
builder.MoveToBookmark("zy");//跳轉到書籤名是zy的位置
builder.Write("書籤位置要替換的文字");

圖片還有一個根據位置定位到某個位置而後粘貼,實例以下code

builder.InsertImage(img, RelativeHorizontalPosition.Page, left, RelativeVerticalPosition.TopMargin, 0, width, height, WrapType.None);

參數具體含義有很明瞭,就不說了。 二、經過表格單元格替換 通常word模板裏邊基本就是表格,因此對錶格的操做很重要 先找到相應的表格orm

Document doc = new Document(tmppath); //載入模板
  Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
  NodeCollection allTables = doc.GetChildNodes(NodeType.Table, true);
  Table table = allTables[0] as Aspose.Words.Tables.Table;//拿到第一個表格

而後對錶格進行操做,可是默認的表格的單元格是隻可讀的,因而我想出一個辦法,就是先取到單元格A存儲到一個新建的單元格對象單元格B裏面,而後修改單元格B,最後刪除單元格A而且把單元格B添加到單元格A中,這樣就完美的替換了單元格了,並且原來單元格的寬高都不用在調整了,因而我把它封裝成了一個方法示例以下對象

/// <summary>
/// 修改表中的數據
/// </summary>
/// <param name="table">表名</param>
/// <param name="doc">文檔</param>
/// <param name="row">要修改行</param>
/// <param name="cell">要修改列</param>
/// <param name="value">修改後的值</param>
private static Table EditCell(Table table, Document doc, int row, int cell, string value)
  {
             Cell c = table.Rows[row].Cells[cell];
             Paragraph p = new Paragraph(doc);
             p.AppendChild(new Run(doc, value));

             p.ParagraphFormat.Style.Font.Size = 10;
             p.ParagraphFormat.Style.Font.Name = "華文楷體";
             c.FirstParagraph.Remove();
             c.AppendChild(p);
             table.Rows[row].Cells[cell].Remove();
             table.Rows[row].Cells.Insert(cell, c);
             return table;
}

3 >就是刪除原來的單元格而後再添加一個新建的單元格,而後自定義屬性(寬高等) 這個不推薦,只是原來沒有想好2方法的替代品,是老版本,可是仍是顯示一下吧,記念本身的努力 方法以下教程

private static Aspose.Words.Tables.Cell CreateCell(string value, Document doc, double cellwidth)
     {
             Aspose.Words.Tables.Cell c1 = new Aspose.Words.Tables.Cell(doc);
             c1.CellFormat.Width = cellwidth;
             c1.CellFormat.Borders.LineStyle = LineStyle.Single;
             //c1.CellFormat.WrapText = false;
             Aspose.Words.Paragraph p = new Paragraph(doc);
             p.AppendChild(new Run(doc, value));
             //Table table = new Table(doc);
             //p.AppendChild(table);
             p.ParagraphFormat.Style.Font.Size = 10;
             p.ParagraphFormat.Style.Font.Name = "華文楷體";
             c1.AppendChild(p);
             return c1;
 
       }

4 >添加數據到單元格,只適用於表格,非常推薦,很好用,具體就是直接向某個表格的某一行的某一列添加值,示例以下:圖片

builder.MoveToCell(0, 31, 1, 0);//先跳轉到第0個表格,第31行,第1列
builder.Write("要寫入的數據");

注意:行和列都是從0開始的,不是從1開始的 5 >經過替換域名的方法 和書籤的方法類似。文檔

相關文章
相關標籤/搜索