.net使用AsposeWord导出word table表格
程序员文章站
2022-04-22 20:45:44
本文为原创,转载请注明出处 1.前言 .net平台下导出word文件还可以使用Microsoft.Office.Interop和NPOI,但是这两者都有缺点,微软的Office.Interop组件需要程序运行的主机上安装office,至于NPOI,由于长期无人维护,BUG众多,各种对象和属性名的命名 ......
本文为原创,转载请注明出处
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 倍 = 18 6 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);
上一篇: 利用SpringMVC过滤器解决vue跨域请求的问题
下一篇: vue.js 微信支付前端代码分享