1. 程式人生 > >Aspose.Word 的常見使用(2018-12-26 更新版)

Aspose.Word 的常見使用(2018-12-26 更新版)

對齊方式 上下左右 ever 寬高 class width 多行 page 字體顏色

Aspose.Word 的常見使用

起因

因項目需要,而且使用html轉Word的時候,樣式不兼容問題,於是只能使用Aspose.Word通過代碼生成。下面是通過DocumentBuilder來設計Word的,但是和使用模型拼接的差不多,原理基本一致。

思路

這裏是說使用Aspose.Word的使用思路,只想某個功能是怎麽使用的可以跳過
代碼都是人寫的,所以每一個代碼都有他的風格,了解這些代碼作者的思路有利於我們去使用它。
簡單使用Word,無非就是文字,圖片,表格以及頁面的樣式。如果了解Css和英語好點的基本都是可以在VS裏面點出來的,最難的就是最開始的入門的。

入門,簡單的示例

Aspose.Words.Document doc = new Document();//新建一個空白的文檔
Aspose.Words.DocumentBuilder builder = new Aspose.Words.DocumentBuilder(doc);
doc.Save("文件保存的全路徑");
這裏面的`builder`相當於一個畫筆,提前給他規定樣式,然後他就能根據你的要求畫出你想畫的Word。這裏的畫筆使用的是就近原則,當上面沒有定義了builder的時候,會使用默認的格式,當上面定義了某個格式的時候,使用最近的一個(即最後一個改變的樣式)

設定Word頁面的樣式

builder.PageSetup.PaperSize = PaperSize.A4;//A4紙
builder.PageSetup.Orientation = Aspose.Words.Orientation.Portrait;//方向
builder.PageSetup.VerticalAlignment = Aspose.Words.PageVerticalAlignment.Top;//垂直對準
builder.PageSetup.LeftMargin = 42;//頁面左邊距
builder.PageSetup.RightMargin = 42;//頁面右邊距

關於頁面的設置,基本都在PageSetup中,根據需要和正常的名字,基本都可以猜出來

寫入一段文字

//獲取ParagraphFormat對象,關於行的樣式基本都在這裏
var ph = builder.ParagraphFormat;
//文字對齊方式
ph.Alignment = ParagraphAlignment.Center;
// 單倍行距 = 12 , 1.5 倍 = 18
ph.LineSpacing = 12;

//獲取Font對象,關於文字的大小,顏色,字體等等基本都在這個裏面
Aspose.Words.Font font = builder.Font;
//字體大小
font.Size = 22;
//是否粗體
font.Bold = false;
//下劃線樣式,None為無下劃線
font.Underline = Underline.None;
//字體顏色
font.Color = Color.Black;//C#的顏色
font.Color = System.Drawing.ColorTranslator.FromHtml("#3b3131");//自定義顏色
//設置字體
font.NameFarEast = "宋體";
//添加文字
builder.Write("添加的文字");
//添加回車
builder.Writeln();
//添加文字後回車
builder.Writeln("添加的文字後回車");

基本使用到的就是這幾個了,如果需要更多可以自己在VS裏面點後試試看。

註意:`builder`在`Write`的時候,默認會使用上面規定的格式,除非你在使用`Write`前更新畫筆的格式,所以,當你在做樣式很多的Word的時候註意更改畫筆的格式。

添加圖片

builder.InsertImage("圖片絕對地址");
builder.InsertImage("圖片絕對地址", 80, 80);//可以控制圖片的寬高

基本是這樣使用,當然還有是其他很多種的參數,比如ImageStream等,在使用的時候可以根據需要使用

添加表格

//開始添加表格
Aspose.Words.Tables.Table table = builder.StartTable();
//開始添加第一行,並設置表格行高
RowFormat rowf = builder.RowFormat;
rowf.Height = 40;
// ....這裏rowf可以有很多的設置
//插入一個單元格
builder.InsertCell();
//設置單元格是否水平合並,None為不合並
builder.CellFormat.HorizontalMerge = CellMerge.None;
//設置單元格是否垂直合並,None為不合並
builder.CellFormat.VerticalMerge = CellMerge.None;
//設置單元格寬
builder.CellFormat.Width = 40;
//單元格垂直對齊方向
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
//單元格水平對齊方向
builder.ParagraphFormat.Alignment = ParagraphAlignment.Left;
builder.CellFormat.FitText = true;//單元格內文字設為多行(默認為單行,會影響單元格寬)
//單元格內添加文字
builder.Write("這是第一行第一個單元格");
builder.InsertCell();
builder.CellFormat.Width = -1;//當不需要規定這個單元格的寬度的時候,設置成-1,會是自動寬度
builder.Write("這是第一行第二個單元格");
//結束第一行
builder.EndRow();
//結束表格
builder.EndTable();
//設置這個表格的上下左右,內部水平,垂直的線為白色(當背景為白色的時候就相當於隱藏邊框了)
table.SetBorder(BorderType.Left, LineStyle.Double, 1, Color.White, false);
table.SetBorder(BorderType.Top, LineStyle.Double, 1, Color.White, false);
table.SetBorder(BorderType.Right, LineStyle.Double, 1, Color.White, false);
table.SetBorder(BorderType.Bottom, LineStyle.Double, 1, Color.White, false);
table.SetBorder(BorderType.Vertical, LineStyle.Double, 1, Color.White, false);
註意:最重要的是不用忘記開始表格,開始一行,結束一行,結束表格
裏面的設置可以根據個人需要修改,也可以不寫使用默認的

表格的合並單元格

//橫向合並單元格
builder.CellFormat.HorizontalMerge = CellMerge.None;
builder.CellFormat.HorizontalMerge = CellMerge.First;
builder.CellFormat.HorizontalMerge = CellMerge.Previous;
//縱向合並單元格
builder.CellFormat.VerticalMerge = CellMerge.None;
builder.CellFormat.VerticalMerge = CellMerge.First;
builder.CellFormat.VerticalMerge = CellMerge.Previous;
備註:當不需要合並單元格的時候設置為 None,當需要合並單元格的時候,第一個設置為First,並正常寫入這個單元格應該存儲的內容。後面的到了要和這個單元格合並的單元格的時候,不需要寫入內容,只需要設置成Previous即可。

Aspose.Word 的常見使用(2018-12-26 更新版)