本文为原创,转载请注明出处
1.前言
.net平台下导出word文件还可以使用Microsoft.Office.Interop和NPOI,但是这两者都有缺点,微软的Office.Interop组件需要程序运行的主机上安装office,至于NPOI,由于长期无人维护,BUG众多,各种对象和属性名的命名也十分混乱,不易读懂,在使用上带来一定的难度,因此为了规避这两者的缺点,目前最佳的选择是使用AsposeWord这个组件来导出word文件。
2.说明
下面是使用AsposeWord导出word表格的例子(源码在文末),其中AsposeWordHelper是对AsposeWord的使用方法进行了很简单的封装,读者熟悉其用法之后可以按照自己的习惯自行封装。
3.最终效果
4.使用方法简介
(1)创建Document对象并得到DocumentBuilder,向文档中添加内容主要使用它
1 //创建文件对象2 Document doc = new Document();3 DocumentBuilder builder = new DocumentBuilder(doc);
(2)设置段落格式:通过DocumentBuilder对象得到ParagraphFormat,使用ParagraphFormat设置段落格式(注:Document对象也可用于设置段落及表格格式,详细用法可参考Aspose官网的例子)
1 //获取ParagraphFormat对象2 var ph = builder.ParagraphFormat;3 //文字对齐方式4 ph.Alignment = ParagraphAlignment.Center;5 // 单倍行距 = 12 , 1.5 倍 = 186 ph.LineSpacing = 12;
得到Font对象用于设置字体:
//获取Font对象Font font = builder.Font;//字体大小font.Size = 11;//是否粗体font.Bold = false;//下划线样式,None为无下划线font.Underline = Underline.None;
(3)添加正文:通过DocumentBuilder添加正文,
//添加文字builder.Write("this is text");//添加文字(带回车)builder.Writeln("this is text with ln");//添加回车builder.Writeln();
(4)添加表格:通过DocumentBuilder添加表格,
//开始添加表格builder.StartTable();//开始添加第一行,并设置表格行高RowFormat rowf = builder.RowFormat;rowf.Height = 40;//插入一个单元格builder.InsertCell();//设置单元格是否水平合并,None为不合并builder.CellFormat.HorizontalMerge = CellMerge.None;//设置单元格是否垂直合并,None为不合并builder.CellFormat.VerticalMerge = CellMerge.None;//设置单元格宽builder.CellFormat.Width = 80;//单元格垂直对齐方向builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;//单元格水平对齐方向builder.ParagraphFormat.Alignment = ParagraphAlignment.Center;builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)//单元格内添加文字builder.Write("this is a cell of row 1 line 1");//结束第一行builder.EndRow();//继续添加表格第二行...//结束表格builder.EndTable();
(5)最后,使用Document对象保存成word文件
//添加文件名,并保存为doc文件string fileName = DateTime.Now.ToString("yyyy-MM-dd") + ".doc";doc.Save(fileName);
源码地址:github,打包下载
.net使用AsposeWord导出word table表格
原文地址:https://www.cnblogs.com/cxc2012/p/8450123.html