aspose-words导出word方法

news/2024/11/26 23:44:03/

一、引用依赖

            <dependency><groupId>com.aspose</groupId><artifactId>aspose-words</artifactId><version>19.5</version><classifier>jdk17</classifier></dependency>

二、导出类

public class WordTable {//定义文档接口public Document doc;public DocumentBuilder builder;public WordTable() {}/*** 初始化构造方法* @param doc 模板地址*/public WordTable(String doc) {try {// 建立DocumentBuilder物件this.doc = new Document(doc);this.builder = new DocumentBuilder(this.doc);} catch (Exception e) {System.out.println("初始化失败" + e.toString());}}/*** 新建文档* @param doc 新建对象*/public WordTable(Document doc) {try {// 建立DocumentBuilder物件this.doc = doc;this.builder = new DocumentBuilder(this.doc);} catch (Exception e) {System.out.println("初始化失败" + e.toString());}}/*** 横向纸张*/public void Portarit(){builder.getPageSetup().setOrientation(Orientation.LANDSCAPE);}/*** 新增表格*/public void createTale(List<OrgWordTarget> orgWordTargets,String orgName) throws Exception {//水平居中builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);StyleCollection styles= doc.getStyles();builder.getFont().setName("微软雅黑");builder.getFont().setBold(true);builder.getFont().setSize(18);builder.writeln("标题");builder.getFont().setName("宋体");builder.getFont().setSize(12);builder.getFont().setBold(false);builder.getParagraphFormat().setLineSpacingRule(LineSpacingRule.MULTIPLE);//12为一倍行距builder.getParagraphFormat().setLineSpacing(18);builder.write(orgName+"(盖章):                 ");builder.writeln("                                年     月       日   ");//创建表格Table table = builder.startTable();String[] titles = new String[]{"标题1", "标题2", "标题3", "标题4", "标题5", "标题6", "标题7"};double[] lens = new double[]{8.8, 18, 14, 15.8, 15.8, 14.6, 12.4};builder.getFont().setSize(11);builder.getFont().setName("微软雅黑");for (int i = 0; i < 7; i++) {builder.insertCell();//插入单元格//设置宽度注意要在插入单元格后在设置builder.getCellFormat().setWidth(lens[i]);
//            builder.getCellFormat().setPreferredWidth(PreferredWidth.fromPercent(lens[i]));//列宽-百分比builder.getCellFormat().getShading().setBackgroundPatternColor(Color.LIGHT_GRAY);//背景色-灰色builder.getCellFormat().setVerticalAlignment(CellVerticalAlignment.CENTER);//垂直居中对齐builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);//水平居中builder.write(titles[i]);//写入内容}builder.endRow();//结束行int i=1;builder.getFont().setBold(false);for (OrgWordTarget o:orgWordTargets) {insertCell(i+"");builder.getCellFormat().setWidth(lens[0]);insertCell(o.getTargetName());builder.getCellFormat().setWidth(lens[1]);insertCell(o.getDataSource());builder.getCellFormat().setWidth(lens[2]);insertCell(o.getMethod());builder.getCellFormat().setWidth(lens[3]);insertCell(o.getExplain());builder.getCellFormat().setWidth(lens[4]);insertCell(o.getDataUpdateInterval());builder.getCellFormat().setWidth(lens[5]);insertCell("□ 是  □ 否");builder.getCellFormat().setWidth(lens[6]);builder.endRow();//结束行i++;}builder.endTable();//结束表格builder.getFont().setSize(11);builder.getFont().setBold(false);builder.getFont().setName("宋体");builder.writeln();builder.writeln("备注:无");builder.getFont().setSize(12);builder.writeln("                                                                              联系人:");builder.write("                                                                                联系方式:");//设置页码addHeaderFooter(doc);
}/*** 插入方法* @param value*/public void insertCell(String value){builder.insertCell();//插入单元格builder.getCellFormat().getShading().setBackgroundPatternColor(Color.WHITE);//背景色-白色
//        builder.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);//对齐-居中builder.getParagraphFormat().setAlignment(CellVerticalAlignment.CENTER);//垂直-居中if (value==null){return;}builder.write(value);//写入内容}/*** 设置页码* @param doc* @throws Exception*/public void addHeaderFooter(Document doc) throws Exception {//创建页脚 页码HeaderFooter footer = new HeaderFooter(doc, HeaderFooterType.FOOTER_PRIMARY);doc.getFirstSection().getHeadersFooters().add(footer);//页脚段落Paragraph footerpara = new Paragraph(doc);footerpara.getParagraphFormat().setAlignment(ParagraphAlignment.CENTER);Run footerparaRun = new Run(doc);footerparaRun.getFont().setName("宋体");footerparaRun.getFont().setSize(9.0);//小5号字体footerpara.appendChild(footerparaRun);footerpara.appendField(FieldType.FIELD_PAGE, true);//当前页码footerpara.appendChild(footerparaRun);footer.appendChild(footerpara);}/*** 替换模板中的站位符*生成站位符方法 选择插入-->文档部件-->域-->类别选择邮箱合并--->MergeField-->自定义域名* @throws Exception*/public void setMap() throws Exception {String[] landSupplyA = new String[1];String[] landSupplyB = new String[1];landSupplyA[0] = "test";landSupplyB[0] = "测试一下";doc.getMailMerge().execute(landSupplyA, landSupplyB);}
}

占位符位置截图:
替换符位置


http://www.ppmy.cn/news/1117171.html

相关文章

高成本获客时代,企业如何通过营销自动化实现突围?

在数字化时代&#xff0c;随着市场竞争的不断升级&#xff0c;企业在获客方面面临了前所未有的挑战。不论是B端或C端的市场和运营部门纷纷寻求可降低获客成本的新运营路径&#xff0c;将有限的预算花在刀刃上。 企业迫切需要寻求更加智能和高效的方式来吸引、转化和留住潜在客…

华为华三40G带宽互通连接测试

郁闷了几天了&#xff0c;今天竟然做了件爽事&#xff01;慢慢说来。 今天下雨&#xff0c;下午娃上学&#xff0c;我送老婆去学校上课。之后到实验室&#xff0c;今年申请买的两台交换机正好送到&#xff1a; S5500V2-54S-EI&#xff1a;48个10/100/1000TX以太网端口&#x…

告白玫瑰||书信逐字打印效果

❝ 关注微信公众号「ClassmateJie」 更多惊喜等待你的发掘 ❞ 直接看实现效果 电脑端 手机端 使用场景 发给女神告白~ 提供一些文案 “自从遇见你&#xff0c;我的世界变得不一样了。每一天都因为你而变得特别。我想告诉你&#xff0c;我喜欢你&#xff0c;不仅仅是因为你的美丽…

AO天鹰优化算法|含源码(元启发式算法)|跑23个经典函数(含源码)

-------往期目录------ 1、灰狼优化算法 文章目录 天鹰优化器一、第一种搜索方法二、第二种搜素方法三、第三种搜素方法四、第四种搜索方法 代码实现 天鹰优化器 Aquila Optimizer&#xff08;AO&#xff09;&#xff0c;灵感来自Aquila在捕捉猎物过程中的自然界行为。因此&a…

组件切换之笨办法、动态组件(is属性、keep-alive)、插槽(不具名、具名)

组件切换之笨办法、动态组件、动态组件之keep-alive、插槽(不具名、具名) 1 组件切换之笨办法 2 动态组件 3 动态组件之keep-alive 4 插槽 4.1 不具名插槽 4.2 具名插槽 1 组件切换之笨办法 <!DOCTYPE html> <html lang"en"> <head><meta…

Vue2使用vue-router初始化项目

Vue2使用vue-router初始化项目 **项目版本号** vue2.6.14 vue-router3.6.5在components中创建Main.vue文件&#xff0c;输入页面要显示的内容&#xff1a; <template><h1>这是 Main 组件</h1> </template><script> export default {name: thisM…

全渠道零售趋势——现代零售业成功的关键

在快节奏的零售时代&#xff0c;无论通过什么渠道购物&#xff0c;消费者越来越习惯无缝购物体验。因此&#xff0c;保持线上和线下购物体验的一致性有助于在品牌与购物者之间建立信任&#xff0c;这也是每个零售商的首要任务。在本文中&#xff0c;我们将介绍现代零售业成功的…

二十二、MySQL联合查询

1、基础概念 &#xff08;1&#xff09;语法&#xff1a; select …… from …… union [all] select …… from …… &#xff08;2&#xff09;理解&#xff1a; 所谓的联合查询&#xff0c;就是对多个条件查询结果进行联合处理&#xff0c;取其并集。 2、实际操作 &…