当前位置: 首页 > news >正文

java导出word(含图片、表格)

1.pom 引入

 <!--word报告生成依赖--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>4.1.2</version></dependency>

2.java代码示例


public class test {public static void main(String[] args) throws IOException, InvalidFormatException {log.info("Word文档开始生成!");XWPFDocument document = new XWPFDocument();WriteHomePage(document,1,"SSS"); //写首页WriteText(document); //写表格前正文与题注WriteFirstTable(document); //写第一个表格FileOutputStream out = new FileOutputStream("Report.docx");document.write(out);out.close();document.close();log.info("Word文档已成功生成!");}public static XWPFDocument WriteHomePage(XWPFDocument document, int orb, String salliteName) throws IOException, InvalidFormatException {//插入图片String imgFile = "E:\\test.png";byte[] imageBytes = Files.readAllBytes(new File(imgFile).toPath());XWPFParagraph paragraph = document.createParagraph();XWPFRun run00 = paragraph.createRun();run00.setText(" ");int width = 200; // 图片宽度int height = 140; // 图片高度int pictureType = XWPFDocument.PICTURE_TYPE_PNG;run00.addPicture(new ByteArrayInputStream(imageBytes), pictureType, imgFile, Units.toEMU(width), Units.toEMU(height));//输入标题XWPFParagraph title1 = document.createParagraph();XWPFRun run = title1.createRun();run.setText("O00");run.setUnderline(UnderlinePatterns.SINGLE);run.setFontFamily("Times New Roman");run.setFontSize(28);run.setBold(true);run.setItalic(true);//不同字体设置的参数大小不同,需要尝试title1.setIndentationFirstLine(1130);// <!-- 设置首行缩进2字符 单位是 1/20 磅 -->run.addBreak();XWPFParagraph title2 = document.createParagraph();XWPFRun run1 = title2.createRun();run1.setText(salliteName+" Continuity of Data");run1.setFontFamily("Times New Roman");run1.setFontSize(28);run1.setBold(true);title2.setIndentationFirstLine(1130); // <!-- 设置首行缩进2字符 -->//设置空白行for (int i = 0; i < 16; i++) {XWPFParagraph blank = document.createParagraph();blank.createRun().setText("");}// 创建段落并设置右对齐样式XWPFParagraph footer = document.createParagraph();footer.setAlignment(ParagraphAlignment.RIGHT);// 创建页脚并添加到段落中XWPFRun run2 = footer.createRun();run2.setText("Data Center");run2.setFontSize(18);run2.setFontFamily("Times New Roman");run2.addBreak();XWPFRun run3 = footer.createRun();run3.setText("www.xxx.com");run3.setFontSize(18);run3.setFontFamily("Times New Roman");run3.setUnderline(UnderlinePatterns.SINGLE);run3.addBreak();return document;}public static XWPFDocument WriteText(XWPFDocument document){//新建一页,创建表格XWPFParagraph newPage = document.createParagraph();newPage.setPageBreak(true);XWPFParagraph para = document.createParagraph();XWPFRun run = para.createRun();run.setText("该报告数据内容正文如下。");run.setFontFamily("宋体");run.setFontSize(12);//小四
//        XWPFFont font =  ;para.setIndentationFirstLine(500); // <!-- 设置首行缩进2字符 -->para.setSpacingBetween(1.5f);//表题注XWPFParagraph para2 = document.createParagraph();XWPFRun runPara2 = para2.createRun();runPara2.setText("表1  数据概况");runPara2.setFontFamily("宋体");runPara2.setFontSize(12);para2.setAlignment(ParagraphAlignment.CENTER);para2.setVerticalAlignment(TextAlignment.CENTER);para2.setSpacingBetween(1.5f);return document;}//输入表格public static XWPFDocument WriteFirstTable(XWPFDocument document){int row = 2;int col = 2;XWPFTable table = document.createTable(row, col);// 设置表格行高for (XWPFTableRow tableRow : table.getRows()) {tableRow.setHeight(500);}table.setStyleID("Table Grid");table.setWidth("100%");//设置表格标题String[] titleArr = {"数据类型","数据连续性"};XWPFTableRow titleRow = table.getRow(0);//设置表头内容和样式,for (int i = 0; i < col; i++) {XWPFTableCell cell = titleRow.getCell(i);cell.getCTTc().addNewTcPr().addNewVAlign().setVal(STVerticalJc.CENTER);XWPFParagraph p = cell.getParagraphs().get(0);p.setAlignment(ParagraphAlignment.CENTER);XWPFRun run3 = p.createRun();run3.setBold(true); // 设置字体加粗run3.setText(titleArr[i]);}//CTHMerge 横向合并,CTVMerge纵向合并, STMerge.RESTART 表示开始合并,为 STMerge.CONTINUE 表示继续合并
//        titleRow.getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);
//        titleRow.getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);
//        XWPFParagraph p = titleRow.getCell(4).getParagraphs().get(0);
//        p.setAlignment(ParagraphAlignment.CENTER);XWPFTableRow row1 = table.getRow(1);row1.getCell(0).setText("11");row1.getCell(1).setText("12");XWPFTableRow row2 = table.getRow(1);row2.getCell(0).setText("21");row2.getCell(1).setText("22");return document;}
}

3.效果展示
在这里插入图片描述

相关文章:

java导出word(含图片、表格)

1.pom 引入 <!--word报告生成依赖--><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>4.1.2</version></dependency><dependency><groupId>org.apache.poi</groupI…...

MySQL数据库记录的修改与更新

数据的修改和更新是数据库管理的核心任务之一,尤其是在动态和快速变化的环境下。本文将深入探讨如何在MySQL数据库中有效地进行记录的修改和更新。特别是将通过使用《三国志》游戏数据作为例子,来具体展示这些操作如何实施。文章主要面向具有基础数据库知识的读者。 文章目录…...

开具数电票如何减少认证频次?

“数电票”开具需多次刷脸认证&#xff0c;如何减少认证频次&#xff1f; 法定代表人、财务负责人可以在“身份认证频次设置”功能自行设置身份认证时间间隔&#xff0c;方法如下&#xff1a; 第一步 登录电子税务局。企业法定代表人或财务负责人通过手机APP“扫一扫”&#x…...

【进阶C语言】动态内存分配

本章大致内容介绍&#xff1a; 1.malloc函数和free函数 2.calloc函数 3.realloc函数 4.常见错误案例 5.笔试题详解 6.柔性数组 一、malloc和free 1.malloc函数 &#xff08;1&#xff09;函数原型 函数参数&#xff1a;根据用户的需求需要开辟多大的字节空间&#xff…...

手机上记录的备忘录内容怎么分享到电脑上查看?

手机已经成为了我们生活中不可或缺的一部分&#xff0c;我们用它来处理琐碎事务&#xff0c;记录生活点滴&#xff0c;手机备忘录就是我们常用的工具之一。但随着工作的需要&#xff0c;我们往往会遇到一个问题&#xff1a;手机上记录的备忘录内容&#xff0c;如何方便地分享到…...

LeetCode 2251. 花期内花的数目:排序 + 二分

【LetMeFly】2251.花期内花的数目&#xff1a;排序 二分 力扣题目链接&#xff1a;https://leetcode.cn/problems/number-of-flowers-in-full-bloom/ 给你一个下标从 0 开始的二维整数数组 flowers &#xff0c;其中 flowers[i] [starti, endi] 表示第 i 朵花的 花期 从 st…...

【3】贪心算法-最优装载问题-加勒比海盗

算法背景 在北美洲东南部&#xff0c;有一片神秘的海域&#xff0c;那里碧海蓝天、阳光 明媚&#xff0c;这正是传说中海盗最活跃的加勒比海&#xff08;Caribbean Sea&#xff09;。 有一天&#xff0c;海盗们截获了一艘装满各种各样古董的货船&#xff0c;每一 件古董都价值连…...

JavaScript 的 for 循环应该如何学习?

JS for 循环语法 JS for 循环适合在已知循环次数时使用&#xff0c;语法格式如下&#xff1a; for(initialization; condition; increment) {// 要执行的代码 }for 循环中包含三个可选的表达式 initialization、condition 和 increment&#xff0c;其中&#xff1a; initial…...

C++核心编程--对象篇

4.2、对象 4.2.1、对象的初始化和清理 用于对对象进行初始化设置&#xff0c;以及对象销毁前的清理数据的设置。 构造函数和析构函数 防止对象初始化和清理也是非常重要的安全问题 一个对象或变量没有初始化状态&#xff0c;对其使用后果是未知的同样使用完一个对象或变量&…...

安装php扩展XLSXWriter,解决php导入excel表格时获取日期变成浮点数的方法

安装php扩展XLSXWriter 1、下载安装包 PECL :: Package :: xlswriter #例如选择下载1.3.6版本 2、解压下载包 tar -zxvf xlswriter-1.3.6.tgz 3、进入文件夹,编译 cd xlswriter-1.3.6 phpize ./configure --with-php-config=/usr/local/php7.1/bin/php-config make&am…...

Vue+element开发Simple Admin后端管理系统页面

最近看到各种admin&#xff0c;头大&#xff0c;内容太多&#xff0c;根本不知道怎么改。所以制作了这个项目&#xff0c;只包含框架、和开发中最常用的表格和表单&#xff0c;不用自己从头搭建架构&#xff0c;同时也容易上手二次开发。可以轻松从其他开源项目整合到本项目。项…...

源码编译安装pkg-config

安装环境&#xff1a;银河麒麟 1 到这个网址下载pkg-config源码&#xff1a; Index of /releases (pkg-config.freedesktop.org) 2 解压 3 进入解压后的目录。输入 ./configure 但是报错。 4 根据报错信息&#xff0c;将configure改为&#xff1a; ./configure --with-i…...

游览器找不到服务器上PHP文件的一种原因

最近在练习搭建网站&#xff0c;遇到游览器找不到服务器上的php文件的问题。后来查找发现&#xff0c;apache文档根目录跟apache虚拟主机文档根目录不同&#xff0c;服务器开启了虚拟主机功能。这导致游览器找不到php文件。使用的环境LAMP 里操作系统和软件版本如下&#xff1a…...

C++之std::function的介绍

C之std::function的介绍 std::function和函数指针的区别介绍std::function 的常见用法包括用法举例 std::function和函数指针的区别介绍 std::function 和函数指针在 C 中都可以用来存储和调用函数&#xff0c;但它们的使用方式和功能有所不同。 函数指针是一种指向函数的指针…...

卷积神经网络学习(一)

CNN应用对象是图像&#xff0c;CNN可被应用于的任务&#xff1a; 1、分类&#xff08;classification&#xff09;&#xff1a;对图像按其中的物体进行分类&#xff0c;如图像中有人与猫&#xff0c;则图像可分为两类。 2、目标检测&#xff08;object detection&#xff09;&a…...

使用KEIL自带的仿真器仿真遇到问题解决

*** error 65: access violation at 0x40021000 : no read permission 修改debug选项设置为下方内容。...

4700 万美元损失,Xn00d 合约漏洞攻击事件分析

4700 万美元损失&#xff0c;Xn00d 合约漏洞攻击事件分析 基础知识 ERC777 ERC777 是 ERC20 标准的高级代币标准&#xff0c;要提供了一些新的功能&#xff1a;运营商及钩子。 运营商功能。通过此功能能够允许第三方账户代表某一合约或者地址 进行代币的发送交易钩子功能。…...

第5讲:v-if与v-show的使用方法及区别

v-if条件判断 v-if是条件渲染指令&#xff0c;它根据表达式的真假来删除和插入元素&#xff0c;它的基本语法如下&#xff1a; v-if “expression” expression是一个返回bool值的表达式&#xff0c;表达式可以是一个bool属性&#xff0c;也可以是一个返回bool的运算式 &#…...

C理解(一):内存与位操作

本文主要探讨C语言的内存和为操作操作相关知识。 冯诺依曼结构和哈佛结构 冯诺依曼结构&#xff1a;数据和代码放在一起,便于读取和修改,安全性低 哈佛结构是&#xff1a;数据和代码分开存放,安全性高,读取和修麻烦 内存 内存是用来存储全局变量、局…...

ESP8266使用记录(四)

放上最终效果 ESP8266&Unity游戏 整合放进了坏玩具车遥控器里 最终只使用了mpu6050的yaw数据&#xff0c;因为roll值漂移…… 使用了https://github.com/ElectronicCats/mpu6050 整个流程 ESP8266取MPU6050数据&#xff0c;处理后通过udp发送给Unity显示出来 MPU6050_Z…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Android15默认授权浮窗权限

我们经常有那种需求&#xff0c;客户需要定制的apk集成在ROM中&#xff0c;并且默认授予其【显示在其他应用的上层】权限&#xff0c;也就是我们常说的浮窗权限&#xff0c;那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)

Aspose.PDF 限制绕过方案&#xff1a;Java 字节码技术实战分享&#xff08;仅供学习&#xff09; 一、Aspose.PDF 简介二、说明&#xff08;⚠️仅供学习与研究使用&#xff09;三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

R 语言科研绘图第 55 期 --- 网络图-聚类

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式&#xff1a; R 语言科研绘图模板 --- sciRplothttps://mp.…...