java输出到文档如何排版_java word中表格怎么排版输出
首先我用的技术是 poi
这是代码,一个工具类得调用
public class WordUtil {
/**
* 基于模板文件导出 word 文档,此方法主要是用来处理文档中需要替换的文本内容,对图片和表格无效
*
* @param templatePath
* 模板文件的路径,要求路径中要包含全名,并且模板文件只能是 07 及以上格式,即 docx 的文件
* @param destFilePath
* 导出文件的存放路径,包含文件名,例如,E:/test/小区公告.docx
* @param data
* 用来替换文档中预定义的字符串,要求预定义的字符串与 data 中的 key 值要相同
*/
public static void exportWordByTemplate(String templatePath,
String destFilePath, Map data) {
FileOutputStream out = null;
XWPFDocument doc = null;
try {
doc = new XWPFDocument(POIXMLDocument.openPackage(templatePath));
List listRun;
List listParagraphs = doc.getParagraphs();
for (int i = 0; i < listParagraphs.size(); i++) {
listRun = listParagraphs.get(i).getRuns();
for (int j = 0; j < listRun.size(); j++) {
if (data.get(listRun.get(j).getText(0)) != null) {
String val = data.get(listRun.get(j).getText(0));
listRun.get(j).setText(val, 0);
}
}
}
File destFile = new File(destFilePath);
if (!destFile.getParentFile().exists()) {
destFile.getParentFile().mkdirs();
}
out = new FileOutputStream(destFilePath);
doc.write(out);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (out != null)
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
* 基于模板文件导出 word 文档,该方法支持03格式,但是此方法只能保留文档内容,不能保留文档中的样式和图片,建议将模板使用 07 的格式保存
*
* @param templatePath
* 模板文件的路径
* @param destFilePath
* 导出文件的存放路径,包含文件名,例如,E:/test/小区公告.doc
* @param data
* 用来替换文档中预定义的字符串,要求预定义的字符串与 data 中的 key 值要相同
*/
public static void export03WordByTemplate(String templatePath,
String destFilePath, Map data) {
try {
WordExtractor doc = new WordExtractor(new FileInputStream(
templatePath));
String content = doc.getText();
for (String key : data.keySet()) {
content = content.replaceAll(key, data.get(key));
}
byte b[] = content.getBytes();
ByteArrayInputStream bais = new ByteArrayInputStream(b);
POIFSFileSystem fs = new POIFSFileSystem();
DirectoryEntry directory = fs.getRoot();
directory.createDocument("WordDocument", bais);
FileOutputStream ostream = new FileOutputStream(destFilePath);
fs.writeFilesystem(ostream);
bais.close();
ostream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
Map maps = new HashMap();
maps.put("appellation", "万达公寓业主:");
maps.put(
"main_body",
"输出的内容");
maps.put("date", "2013年1月23日");
exportWordByTemplate("E:/sss 2.docx", "E:/test/test.doc", maps);
}
}
"E:/sss 2.docx 模板存放的地址。
E:/test/test.doc 新生成的地址。
取消
评论
java输出到文档如何排版_java word中表格怎么排版输出相关推荐
- adobe acrobat打开PDF文档 怎样实现类似Word中的拆分功能
adobe acrobat 软件阅读PDF文档, 怎样实现Word中的窗口拆分功能呢? 答:打开pdf文件,找到菜单栏的窗口,选择拆分.就可以像word中拆分窗口看一个文档一样的功能了. 见下图: P ...
- java 接口文档的格式化_Java Word API - 读写转换处理DOC DOCX HTML PDF HTML格式
Java Word 文档处理API 先进功能 执行邮件合并 使用邮件合并生成报表 插入格式户文本,段落,图像,表格以及其他内容到Word文档中 使用数据库的检索数据填充到Word文档中的表格 创建邮件 ...
- 计算机文档字体替换,在word中巧妙使用字体替换
不知您是否遇到过这样的情况,当您使用Word文档时,很喜欢使用同一种字体来编辑文字,可如果是另外一台电脑没有你喜欢用的字体,希望把其中的某一种字体全部改为另一种字体,怎么解决呢?你会如何去完成这项工作 ...
- java怎么给文档加水印_Java 如何给Word文档添加多行文字水印
前言 我在以往的文章中曾介绍过如何给Word文档添加文本水印和图片水印,及怎样删除文档中的水印.关于文本水印,之前那篇教程里主要指的是单行字体的水印,而在操作Word文档时,有时也会碰到需要添加多行文 ...
- 编辑中的word变成只读_文档设定密级,word中是这样加密,看一篇就精通了
--word2016系列教程之"文档加密" 今天,开课前先普及一个知识.公文根据内容可以将密级设为不同的三级.第一,绝密公文,是指涉及国家核心秘密的内容的文件.第二,机密公文,是涉 ...
- 如何打开html的文档结构图,如何在Word中设置文档结构图
在使用Word文档编辑大量文字内容时,有涉及到很多章节,有时候页数太多,很难操作前后快速链接起来,为了让整个文案的脉络承上启下,那如何在Word中设置文档结构图? 接下来小编跟大家介绍下如何设置wor ...
- word文档html图片不能移动,word中遇上图片不能移动的问题应该怎么解决
图片是word的重要组成部分,那大家有没有遇上过图片插入word之后却无法移动的问题,这都是什么原因导致的呢?本文就来和大家介绍产生这一问题时的解决方法. 01更改图片环绕方式 如果想要移动图片,只需 ...
- java 前言中不允许有内容,Java解析XML文档给出了“序言中不允许的内容”。
这个问题已经在这里有了答案: Prolog SAXParserException中不允许包含内容 5个答案 我正在用Java编写 ...
- java客户端api文档_Java 11:新的HTTP客户端API
java客户端api文档 在Java 11中,已将最初在Java 9中引入的孵化HTTP客户端API进行了标准化. 它使连接URL,管理请求参数,cookie和会话更加容易,甚至支持异步请求和webs ...
最新文章
- Python Scipy 科学计算库
- Java判断字符串的开头和结尾
- 是学习Java还是Python?一张图告诉你!
- 安装win10和Linux双系统的个人经验
- linux下好用软件全记录
- bat脚本保存dir结果_MySQL备份脚本,应该这么写
- java设计模式2--工厂模式
- mysql强制安装参数_Mysql编译安装参数优化
- ISO常见的17大体系介绍
- 计算机并口地址定义,电脑并口(LPT)引脚定义
- 蓝牙协议保留(为了防止电脑内丢失)
- datagrid的deleteRow使用
- 高德离线地图vue-amap的api文档(1):创建地图,撒点等等
- 第三章 区块链率先敲开金融的大门
- 自然常数e的由来以及计算机为什么是二进制
- 内网主机通过公网域名解析访问内网服务器,存在什么问题,如何解决?
- 解析dump的几种方式
- 什么是阻抗匹配以及为什么要阻抗匹配
- SQL server数据库常用代码大全
- Java泛型方法返回值前面为什么要加上T