aspose-words导出word方法

一、引用依赖

            <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.rhkb.cn/news/137374.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

腾讯云阿里云云服务器 Linux 操作系统 BT 宝塔面板快速建站教程

宝塔面板概述 宝塔面板是一款服务器管理软件&#xff0c;支持Windows和Linux系统&#xff0c;可以通过Web端轻松管理服务器&#xff0c;提升运维效率。总体来说&#xff0c;宝塔面板具有操作简单、功能丰富、安全可靠等特点&#xff0c;是一款非常实用的服务器管理软件。 宝塔…

GPT,GPT-2,GPT-3,InstructGPT的进化之路

ChatGPT 火遍圈内外&#xff0c;突然之间&#xff0c;好多人开始想要了解 NLP 这个领域&#xff0c;想知道 ChatGPT 到底是个什么&#xff1f;作为在这个行业奋斗5年的从业者&#xff0c;真的很开心让人们知道有一群人在干着这么样的一件事情。这也是我结合各位大佬的文章&…

滚雪球学Java(25):动态代理

&#x1f3c6;本文收录于「滚雪球学Java」专栏&#xff0c;专业攻坚指数级提升&#xff0c;助你一臂之力&#xff0c;带你早日登顶&#x1f680;&#xff0c;欢迎大家关注&&收藏&#xff01;持续更新中&#xff0c;up&#xff01;up&#xff01;up&#xff01;&#xf…

IPv6协议基本概念

目前大多数设备节点支持IPv6和IPv4双栈,但随着IPv6逐渐应用,某些设备已经只支持纯IPv6,即IPv6 Only。 一、IPv6地址格式 1、IPv6地址表示方式 IPv6可以写成一组8个十六进制数,用冒号(:)分割。也可以写成128位2进制的0和1。 32即8x4,8表示8组16进制数,4表示每组16禁止包…

Git基础操作

前言 本文会向您介绍如何安装git&#xff0c;以及快速地上手add&#xff0c;commit&#xff0c;push&#xff0c;版本回退操作 基础配置 关于windous上的安装git官网已经介绍的很清楚了&#xff0c;您可以直接点入链接windows安装 如果你的平台是centos&#xff0c;以centos…

【Verilog教程】2.4Verilog表达式

表达式 表达式由操作符和操作数构成&#xff0c;其目的是根据操作符的意义得到一个计算结果。表达式可以在出现数值的任何地方使用。 例如&#xff1a; a^b ; //a与b进行异或操作 address[9:0] 10b1 ; //地址累加 flag1 && flag2 ; //逻辑与操作操作数 …

有没有普通人可以做的项目?分享几个项目适合普通人做的!

当谈到副业时&#xff0c;我们通常会想到能够轻松实施的兼职方式&#xff0c;并且希望通过这些副业增加我们的收入。那么&#xff0c;以下是我推荐的几种副业&#xff0c;这些副业不仅有良好的收入潜力&#xff0c;而且在执行过程中也很有趣。让我们一起看看吧&#xff01; 第…

Hive行转列[一行拆分成多行/一列拆分成多列]

场景&#xff1a; hive有张表armmttxn_tmp&#xff0c;其中有一个字段lot_number&#xff0c;该字段以逗号分隔开多个值&#xff0c;每个值又以冒号来分割料号和数量&#xff0c;如&#xff1a;A3220089:-40,A3220090:-40,A3220091:-40,A3220083:-40,A3220087:-40,A3220086:-4…

爬虫框架Scrapy学习笔记-2

前言 Scrapy是一个功能强大的Python爬虫框架&#xff0c;它被广泛用于抓取和处理互联网上的数据。本文将介绍Scrapy框架的架构概览、工作流程、安装步骤以及一个示例爬虫的详细说明&#xff0c;旨在帮助初学者了解如何使用Scrapy来构建和运行自己的网络爬虫。 爬虫框架Scrapy学…

Redis的介绍以及简单使用

Redis&#xff08;Remote Dictionary Server&#xff09;是一个开源的内存数据存储系统&#xff0c;它以键值对的形式将数据存在内存中&#xff0c;并提供灵活、高性能的数据访问方式。Redis具有高速读写能力和丰富的数据结构支持&#xff0c;可以广泛应用于缓存、消息队列、实…

华为云云耀云服务器L实例评测|轻量级应用服务器对决:基于 STREAM 深度测评华为云云耀云服务器L实例的内存性能

本文收录在专栏&#xff1a;#云计算入门与实践 - 华为云 专栏中&#xff0c;本系列博文还在更新中 相关华为云云耀云服务器L实例评测文章列表如下&#xff1a; 华为云云耀云服务器L实例评测 | 从零开始&#xff1a;云耀云服务器L实例的全面使用解析指南华为云云耀云服务器L实…

Outlook打开超链接用默认浏览器Microsoft outlook open hyperlink using default browser

这两天outlook打开超链接一直用edge&#xff0c;但我的默认浏览器是chrome。 解决方法 在outlook的选项中的高级设置里面&#xff0c;将超链接打开选为默认浏览器。

ESP8266 Windows下开发环境搭建

文章目录 1、SDK下载2、Windows下的开发工具链安装3、ESP8266专用工具链安装4、运行msys32目录下的mingw32.exe&#xff0c;初始化环境5、配置环境变量6、编译hello world例程7、SDK配置8、烧录9、在串口助手中查看 1、SDK下载 官方提供了两种SDK&#xff0c;OS版本和非OS版本…

java springboot 如何实现小程序支付

今天给大家分享java小程序支付 首先我们学习任何东西要先看官网 下面是支付业务流程 我们具体用代码去实现上面的业务流程 功能截图 代码截图 pay(){//调用后台生成订单var orderNumber "20210101123456";var amount 0.01;WxPay.wxpay(app, amount, orderNumber…

(一)探索随机变量及其分布:概率世界的魔法

文章目录 &#x1f34b;引言&#x1f34b;什么是随机变量&#xff1f;&#x1f34b;离散随机变量&#x1f34b;连续随机变量 &#x1f34b;随机变量的概率分布&#x1f34b;离散概率分布&#x1f34b;0-1分布&#xff08;Bernoulli分布&#xff09;&#x1f34b;二项分布&#…

Unity制作曲线进度条

unity制作曲线进度条 大家好&#xff0c;我是阿赵。   在使用Unity引擎做进度条的时候&#xff0c;有时会遇到一个问题&#xff0c;如果进度条不是简单的横向、纵向或者圆形&#xff0c;而是任意的不规则形状&#xff0c;那该怎么办呢&#xff1f;比如这样的&#xff1a; 一…

CentOS7安装Nginx+ModSecurity

一、介绍 当学习网络安全时&#xff0c;了解和使用安全设备是必不可少的一部分&#xff0c;其中一种常见的安全设备是Web应用防火墙&#xff08;WAF&#xff09;。市场上有许多商业化的WAF&#xff0c;但对于学习目的&#xff0c;我推荐使用一款免费开源的WAF&#xff0c;名为…

SpringMVC自定义注解和使用

一.引言 1.简介&#xff1a; 在Spring MVC中&#xff0c;我们可以使用自定义注解来扩展和定制化我们的应用程序。自定义注解是一种通过Java的注解机制定义的特殊注解&#xff0c;可以应用于控制器类、方法或者方法参数上&#xff0c;以实现不同的功能和行为。&#xff08;注解…

【小记录】jupyter notebook新版本

手欠升级 &#x1f605;今天手贱&#xff0c;在anaconda navigator里面更新了最新版本的spyder&#xff0c;然后莫名奇妙地jupyter notebook就打不开了&#x1f605;&#xff0c;报错说缺少模块”ModuleNotFoundError: No module named jupyter_server.contents“&#xff0c;…

4G版本云音响设置教程腾讯云平台版本

文章目录 4G本云音响设置教程介绍一、申请设备三元素1.腾讯云物联网平台2.创建产品3.设置产品参数4.添加设备5.获取三元素 二、设置设备三元素1.打开MQTTConfigTools2.计算MQTT参数3.使用USB连接设备4.设置参数 三、腾讯云物联网套件协议使用说明1.推送协议信息2.topic规则说明…