Aspose.word基础

发布于:2023-04-27 ⋅ 阅读:(242) ⋅ 点赞:(0)

读取word文档

Document doc = new Document(path); //读取模板
//builder相当于光标
DocumentBuilder builder = new DocumentBuilder(doc);
doc.Save("文件保存路径");

移动光标

builder.moveToDocumentStart();//移动光标到起始位置
builder.moveToDocumentEnd();//移动光标到末尾
builder.moveToBookmark("书签名");//在模板中设置书签可以跳转到书签位置
创建书签

创建书签

常用方法

builder.getPageSetup().setLeftMargin(42);//页面左边距
builder.getPageSetup().setRightMargin(42);//页面右边距

builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);//水平居中

builder.ParagraphFormat.LineSpacing = 12;//单倍行距12,1.5倍行间距18
builder.getParagraphFormat().setSpaceBefore(0);//段前
builder.getParagraphFormat().setSpaceAfter(0);//段后
builder.getParagraphFormat().setFirstLineIndent(2);//首行缩进,2字节
builder.getParagraphFormat().setLeftIndent(0);//左缩进
builder.getParagraphFormat().setRightIndent(0);//右缩进

builder.getFont().setBold(true);//设置字体加粗
builder.getFont().setNameFarEast("宋体");//设置字体
builder.getFont().setSize(11);//设置字号
builder.getFont().setColor(Color.BLACK);//设置颜色
builder.getFont().setUnderline(1);//设置下划线

builder.Write("添加的文字");//添加文字
builder.Writeln();//添加回车
builder.Writeln("添加的文字后回车");//添加文字后回车

Run pageBreakRun = new Run(doc, ControlChar.PAGE_BREAK);//新建分页符
builder.insertNode(pageBreakRun);//插入分页符

创建表格

builder.startTable();//创建表格
builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);//垂直居中
builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);//水平居中

builder.getRowFormat().setHeight(25);//设置行高
builder.getFont().setBold(true);//设置字体加粗
builder.insertCell();//创建单元格
builder.getCellFormat().setWidth(30);//设置单元格宽度
builder.write("第一行");
builder.endRow();//结束当前行
//结束行后再次创建Cell进入下一行,也可以重新设置行高、字体,上一行不受影响。
builder.getFont().setBold(false);//取消设置加粗字体
builder.insertCell();
builder.getCellFormat().setWidth(50);//设置单元格宽度
builder.write("第二行");
builder.endRow();
builder.endTable();//结束表格绘制
运行结果

生成的word

合并单元格

//水平合并
builder.getCellFormat().setHorizontalMerge(CellMerge.NONE);
//垂直合并
builder.getCellFormat().setVerticalMerge(CellMerge.NONE);

//NONE:不合并
//FIRST:需要合并的第一个单元格
//PREVIOUS:要与设置FIRST的单元格进行合并的单元格需要设置为PREVIOUS
**//第一种:水平合并单元格**
builder.startTable();
builder.insertCell();
builder.getCellFormat().setHorizontalMerge(CellMerge.FIRST);
builder.write("合并单元格内容写在第一个单元格中");
		
builder.insertCell();
//需要合并的单元格都需要添加PREVIOUS
builder.getCellFormat().setHorizontalMerge(CellMerge.PREVIOUS);
builder.insertCell();
builder.getCellFormat().setHorizontalMerge(CellMerge.PREVIOUS);
builder.endRow();
//第二行
builder.insertCell();
builder.insertCell();
builder.insertCell();
builder.endRow();
builder.endTable();
builder.writeln();

**//第二种:通过设置宽度合并**
builder.startTable();
builder.insertCell();
builder.getCellFormat().setWidth(120);
builder.write("设置要合并单元格的总宽度");
builder.endRow();
			
builder.insertCell();
builder.getCellFormat().setWidth(60);
builder.insertCell();
builder.getCellFormat().setWidth(60);
builder.endRow();
builder.endTable();
运行结果

合并单元格

插入图片

//可以使用path、inputStream、byte[]、bufferedImage插入图片
builder.insertImage(imagePath);//原尺寸
builder.insertImage(imagePath, width, height);//设置大小
//horzPos 水平 RelativeHorizontalPosition.MARGIN
//left 水平偏移距离(以磅为单位)
//vertPos 垂直 RelativeVerticalPosition.MARGIN
//top 垂直偏移距离(以磅为单位)
//wrapType 文字环绕方式 WrapType.INLINE嵌入型
builder.insertImage(imagePath, horzPos, left, vertPos, top, width, height, wrapType);

————————————————
版权声明:本文为CSDN博主「学习要趁早z」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_42677452/article/details/111933916

本文含有隐藏内容,请 开通VIP 后查看