博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Aspose.Word 的常见使用(不用模板创建)
阅读量:4302 次
发布时间:2019-05-27

本文共 3445 字,大约阅读时间需要 11 分钟。

 

起因

因项目需要,而且使用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 倍 = 18ph.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即可。

转载地址:http://iwlws.baihongyu.com/

你可能感兴趣的文章
大数据学习之HDP SANDBOX开始学习
查看>>
Hive Beeline使用
查看>>
Centos6安装图形界面(hdp不需要,hdp直接从github上下载数据即可)
查看>>
CentOS7 中把yum源更换成163源
查看>>
关于yum Error: Cannot retrieve repository metadata (repomd.xml) for repository:xxxxxx.
查看>>
linux下载github中的文件
查看>>
HDP Sandbox里面git clone不了数据(HTTP request failed)【目前还没解决,所以hive的练习先暂时搁置了】
查看>>
动态分区最佳实践(一定要注意实践场景)
查看>>
HIVE—索引、分区和分桶的区别
查看>>
Hive进阶总结(听课总结)
查看>>
大数据领域两大最主流集群管理工具Ambari和Cloudera Manger
查看>>
Sqoop往Hive导入数据实战
查看>>
Mysql到HBase的迁移
查看>>
Sqoop import进阶
查看>>
Hive语句是如何转化成MapReduce任务的
查看>>
Hive创建table报错:Permission denied: user=lenovo, access=WRITE, inode="":suh:supergroup:rwxr-xr-x
查看>>
Hive执行job时return code 2排查
查看>>
hive常用函数及数据结构介绍
查看>>
Hive面试题干货(亲自跟着做了好几遍,会了的话对面试大有好处)
查看>>
力扣题解-230. 二叉搜索树中第K小的元素(递归方法,中序遍历解决)
查看>>