首页 > 编程语言 >Aspose.Word 的常见使用(3)

Aspose.Word 的常见使用(3)

时间:2023-08-13 18:23:01浏览次数:32  
标签:单元格 Word builder 常见 CellFormat 设置 Aspose

起因

因项目需要,而且使用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;//页面左边距(单位:磅, 1厘米=28.3527磅)
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等,在使用的时候可以根据需要使用

添加表格

builder.CellFormat.FitText = true;//单元格内文字设为多行(默认为单行,会影响单元格宽)
//开始添加表格
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即可。

表格的宽设置

//设置两个单元格,分别占用30%和70%
var cell = builder.InsertCell();
builder.Write(info1??"");
cell.CellFormat.PreferredWidth = PreferredWidth.FromPercent(30);
var cell2 = builder.InsertCell();
builder.Write(info2??"");
cell2.CellFormat.PreferredWidth = PreferredWidth.FromPercent(70);
cell2.CellFormat.FitText = true;

设置表格的内边距(单位:磅)

builder.CellFormat.TopPadding = 4;
builder.CellFormat.BottomPadding = 0;
builder.CellFormat.LeftPadding = 6;
builder.CellFormat.RightPadding = 4;
builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center;
builder.CellFormat.FitText = true;

图片设置宽度,高度自动调整

var image = System.Drawing.Image.FromFile(path1);
//设置宽度为270,高度对应自适应
builder.InsertImage(image,270,270.0 * image.Height / image.Width);

添加页面页码

builder.MoveToHeaderFooter(HeaderFooterType.FooterPrimary);
// 为当前页码添加字段
builder.InsertField("PAGE", "");
// 添加任何自定义文本
builder.Write(" / ");
// 为文档中的总页码添加字段
builder.InsertField("NUMPAGES", "");

合并多个文档

doc.AppendDocument(defaultDoc, ImportFormatMode.UseDestinationStyles);

合并多个的时候编号可能会连续,例如第一个文档有1,2,3,4,5,然后下一个也有,这样第二个的编号可能就会变为6,7,8,9,10,影响效果。

标签:单元格,Word,builder,常见,CellFormat,设置,Aspose
From: https://www.cnblogs.com/itljf/p/17626951.html

相关文章

  • Nginx日常维护及常见问题处理
    1.日常维护1.1检查配置文件问题/app/nginx/sbin/nginx-t1.2进程检查ps-ef|grepnginx1.3端口检查netstat-anput|grep端口1.4查看错误日志cat/app/nginx/logs/*.log|grep“ERROR”2.常见问题处理2.1配置语法错误故障现象:testfailed故障原因:配置语法错误解决方法:执行n......
  • 【8月摸鱼计划】IOST Studio的一些常见使用方法
    IOSTStudio是一个用于开发和调试IOST应用的开发工具。下面是IOSTStudio的一些常见使用方法:安装IOSTStudio:首先,你需要从官方网站下载IOSTStudio,并根据指示进行安装。IOSTStudio提供了适用于不同操作系统的安装包。创建或导入项目:启动IOSTStudio后,你可以选择创建新项目或......
  • Linux常见面试题,应对面试分享
    操作系统基础1.cpu占⽤率太⾼了怎么办?排查思路是什么,怎么定位这个问题,处理流程其他程序:1.通过top命令按照CPU使⽤率排序找出占⽤资源最⾼的进程2.lsof查看这个进程在使⽤什么⽂件或者有哪些线程3.询问开发或者⽼⼤,是什么业务在使⽤这个进程4.是否可以将这台机器隔离,不影响......
  • mysql8默认caching_sha2_password身份验证
    发生这个问题的原因是在mysql8.0以后,caching_sha2_password是默认的身份验证插件,而不是以往的mysql_native_password。在MySQLCommandLine工具下修改mysql的默认身份验证插件即可。Theserverrequestedauthenticationmethodunknowntotheclient[caching_sha2_passw......
  • 【Sword系列】第七届全国残疾人职业技能大赛样题-网络安全-变异凯撒
    前言在密码学中,凯撒密码是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。ROT13是凯撒密码的一种变体,即移位数为13。RO......
  • 服务器常见问题答疑
    前篇#为什么要写这篇文章呢 现在属于网络时代,服务器的使用越来越广泛,网站搭建、软件开发、游戏开发和区块链等都是需要在服务器里操作搭建的,花时间写这篇文章是希望能有更多的人对服务器有更好的认识 一、##检查哪些尝试入侵服务器的ip命令ubuntu查看尝试登录服务器的ip,一般用......
  • 码云git clone报错Incorrect username or password ( access token )
    使用码云将仓库clone到本地,报错信息如下:D:\\123\>gitclonehttps://gitee.com/ycyzharry/helloworld.gitCloninginto'helloworld'...remote:Incorrectusernameorpassword(accesstoken)fatal:Authenticationfailedfor'https://gitee.com/ycyzharry/h......
  • 注册表编辑器 桌面右键新建word
    注册表编辑器是什么,如何使用注册表编辑器是Windows操作系统中的一个工具,用于修改Windows注册表的内容。注册表是Windows操作系统中存储配置信息的数据库,包含了系统设置、用户配置、安装程序信息等。要使用注册表编辑器,请按照以下步骤操作:打开注册表编辑器:按下Win+R键,输入"reged......
  • 常见问题
    vscode自动将CRLF格式转为LF格式​​警告:DeleteCReslint原因:换行符为CRLF格式的,应该改为LF格式(这个文件之前是被苹果电脑编辑过)解决方法:安装插件EditorConfigforVSCode在根目录新建文件.editorconfig写入以下代码root=true[*]charset=utf-8indent_......
  • 互联网公司最常见的面试算法题有哪些?
    很多时候,你即使提前复习了这些最常见的面试算法题,你依旧无法通过算法面试!为什么?你在提前准备复习的时候,在网上找了半天相应题目的分析文章,但你看了就是不懂。你在面试的时候,卡壳了,一时间忘了怎么写代码了怎么办?我来助你一臂之力!!为了避免知乎大佬觉得我吹逼,先贴一下自己的GitHub地......