IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> java实现word文档的编写 -> 正文阅读

[Java知识库]java实现word文档的编写

对于word文档的生成主要采用的poi生成。
引入依赖

<dependency>
   <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>3.17</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>3.17</version>
</dependency>

一、第一种方式
主类中编写一种替换方式编写文档

public static void main(String[] args) throws Exception {
    Map<String, String> map = new HashMap<>();
    map.put("${reportContent}", "这是一个难忘的季节");
    map.put("${date}", "2021-9-10");
    map.put("${author}", "cyz");
    map.put("${address}", "中国的一个小城市");
    XWPFDocument document = new XWPFDocument(POIXMLDocument.openPackage("D:\\word\\template.docx"));
    Iterator<XWPFParagraph> itPara = document.getParagraphsIterator();
    while (itPara.hasNext()) {
        XWPFParagraph paragraph = (XWPFParagraph) itPara.next();
        List<XWPFRun> runs = paragraph.getRuns();
        for (int i = 0; i < runs.size(); i++) {
            String oneparaString = runs.get(i).getText(runs.get(i).getTextPosition()).trim();
            for (Map.Entry<String, String> entry : map.entrySet()) {
                if (oneparaString.equals(entry.getKey())) {
                    oneparaString = oneparaString.replace(entry.getKey(), entry.getValue());
                }
            }
            runs.get(i).setText(oneparaString, 0);
        }
    }
    FileOutputStream outStream = null;
    outStream = new FileOutputStream("D:\\word\\write.docx");
    document.write(outStream);
    outStream.close();
}

首先我们在template.docx文档中将替换的内容编写好。
其次可以从数据库中获取相应的值,将替换内容当做key,数据库中获取的相应的值当做键值,最后将内容替换后写出到write.docx文档中即可。
二、第二种方式

public static void ExpReprot(HttpServletRequest request,HttpServletResponse response)throws Exception {
		
		response.setContentType("application/msword");
		response.setCharacterEncoding("utf-8");
		String fileName=URLEncoder.encode("生成报告文档","utf-8").replaceAll("\\+","%20");
		response.setHeader("Content-disposition", "attachment;filename*=utf-8''"+fileName+".doc");
		
		//创建word文档对象
		XWPFDocument document=new XWPFDocument();
		//创建标题
		XWPFParagraph title=document.createParagraph();
		//设置段落居中
		title.setAlignment(ParagraphAlignment.CENTER);
		
		XWPFRun titleRun=title.createRun();
		titleRun.setColor("00000");
		titleRun.setFontSize(25);
		titleRun.setFontFamily("仿宋");
		titleRun.setBold(true);
		titleRun.setText("生成报告文档信息");
		titleRun.addBreak();//换行
		
		//添加第一段落
		XWPFParagraph firstParagraph=document.createParagraph();
		//设置左对齐
		firstParagraph.setAlignment(ParagraphAlignment.LEFT);
		//---------------------以上设置整段的树形,以下设置内容
		XWPFRun firstRun=firstParagraph.createRun();
		firstRun.setColor("00000");
		firstRun.setFontSize(13);
		firstRun.setFontFamily("楷体");
		firstRun.setBold(true);
		firstRun.setText("这是一份有关于经济方面的报告,如何增长,如何促进本市的经济发展,促进消费,拉动经济。");
		firstRun.addBreak();//换行
		firstRun.addTab();//缩进
		firstRun.setText("虽然目前经济来说,由于疫情的影响,消费拉动经济确实有点困难,但线上的消费同样也可以促进经济发展,所以应该大力发展。");
		firstRun.addBreak();//换行
		//添加第二段落
		XWPFParagraph secondParagraph=document.createParagraph();
		secondParagraph.setAlignment(ParagraphAlignment.RIGHT);
		XWPFRun secondRun=firstParagraph.createRun();
		secondRun.setText("这是第二段落");
		
		document.write(response.getOutputStream());
		document.close();
		
	}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 18:40:35  更:2021-09-11 18:42:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:36:49-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码