需求描述:
网页问卷调查,有复选框,有图片,在导出到word中问题与选择的答案与html上一样
难点:
1、word模板中有图片
2、word中有显示复选框与动态选中内容
解决方案:
把word转存为xml格式,在动态复选区域用word的标签标识出来,填空的位置用标签标识。
从word xml中 找出复选选中的内容,复选不选的内容,分别存为不同的模板,以便动态插入
书签的内容:
<w:bookmarkStart w:id="2" w:name="quest3_checkbox_男"/><w:bookmarkEnd w:id="2"/>
1、用java普通的io,先读取模板内容,先用正则剔除书签的结束内容
context = context.replaceAll( "<w:bookmarkEnd w:id=\"\\d+\"/>" , "" );
2、用正则找到所有的书签,进行遍历替换
String result = "";
if (quest == null || context == null || context.trim().length() == 0) {
return result;
}
Pattern p = Pattern.compile("<w:bookmarkStart(.[^>])*/>");
Pattern p2 = Pattern. compile("w:name=\"(.*)\"");
Matcher matcher = p.matcher(context);
StringBuffer sBuffer = new StringBuffer();
while (matcher.find()) {
// 找到book标签
String group = matcher.group();
System. out.println(group);
// 从标签中找到内容
Matcher m2 = p2.matcher(group);
if (m2.find()) {
String bookmark = m2.group(1);
String targetStr = repaceStr(bookmark, quest);
if (targetStr.indexOf( "<w:r") == -1) {
// 是字的,非符号
targetStr = TEXT_STR.replaceAll("\\$text\\$" , targetStr);
}
System. out.println(targetStr);
matcher.appendReplacement(sBuffer, targetStr);
}
}
matcher.appendTail(sBuffer);
result = sBuffer.toString();
return result;
3、判断选中不选中的内容
如果是选中的,取选中的模板字符串,不选中的,选不选中的模板,替换相应的书签
4、把处理好的字符串输出到文件中即可,后缀名改为xxxx.doc
需注意模板编码问题,用eclipse打开选中模板有乱码,在程序中需要gkb读取,用ue或EditPlus 打开没问题
相关推荐
此外,描述中提到的"完整的JAVA导出WORD源代码,解压即可运行"意味着提供的压缩包可能包含一个完整的Java项目,用户只需要解压并运行即可体验或学习如何使用Jacob库进行Word文档操作。这个项目可能包括了构建文件...
Java 导出Word文档是一项常见的任务,特别是在企业级应用中,比如报告生成、合同模板等。本教程将重点介绍如何利用Freemarker技术实现这一功能,特别是如何将Word模板转化为可编程填充的数据模板。 首先,让我们...
Java 导出 Word 文档是一项常见的任务,在许多企业级应用中都有所应用,例如报告生成、数据导出等。在本教程中,我们将探讨如何利用 FreeMarker 模板引擎来实现这一功能。FreeMarker 是一个强大的、开源的模板语言,...
在Java开发中,导出Word文档是一项常见的任务,尤其在生成报表、报告或者合同等场合。本文将探讨如何使用Java高效地实现Word文档导出,主要聚焦于利用XDocReport和FreeMarker模板引擎的方式。 首先,Java中导出Word...
首先,Java导出Word文件通常有两种方式:一是使用Apache POI库,二是使用JODConverter库。Apache POI是广泛使用的开源库,它允许Java程序员创建、修改和显示Microsoft Office格式的文件,包括Word(.doc和.docx)。...
最近因项目开发的需要,整理了一份用JAVA导出WORD文档,其部署步骤如下: 1、将jacob-1.14.3-x86.dll放在服务器的系统盘(或运行本机的系统):\WINDOWS\system32目录下。 2、将jacob-1.14.3-x86.dll放在JDK 的 bin ...
在Java编程中,生成Word文档是一项常见的需求,例如在企业级应用中用于生成报告、合同或者数据导出等。这个实例将带你了解如何在Java环境中使用API来创建和导出Word文档。以下是一些关键的知识点: 1. **Apache POI...
总之,Java导出Word文档主要依赖于如Apache POI这样的第三方库,通过这些库提供的API,你可以轻松地创建、编辑和导出复杂的Word文档。在实际项目中,你可以根据需求选择合适的库,并结合示例代码和说明来实现所需...
Java使用Apache POI库导出Word文档是一种常见的技术实践,特别是在企业级应用中,用于生成报告、合同或者自定义的数据输出。Apache POI是Apache软件基金会的一个开源项目,它提供了处理Microsoft Office格式(如Word...
Java导出Word文档是开发过程中常见的一项任务,尤其在企业级应用中,为了实现数据的导出和报告生成,这项技术尤为重要。Apache POI库是一个强大的开源项目,它提供了读写Microsoft Office格式文件的能力,包括Word...
Java导出Word模板技术主要涉及的是在编程环境中利用特定库生成动态文档的能力。在这个场景中,我们看到一个道路案卷管理系统的例子,其中涉及到的数据字段是通过Java代码动态填充到Word模板中的。以下是对这个话题的...
在Java编程环境中,导出Word文档并插入图片是一项常见的任务,尤其在自动化报告生成、数据可视化或文档处理的场景中。下面将详细讲解如何使用Java实现这个功能。 首先,我们需要一个能够操作Word文档的库。Apache ...
在Java编程中,将图片导出到Word文档是一项常见的任务,尤其在自动化报告生成或数据可视化等场景下。本文将详细介绍如何使用Java实现这一功能,包括必要的库、步骤以及可能出现的问题。 首先,我们需要一个能够处理...
在Java编程环境中,生成Word文档是一项常见的需求,特别是在企业级应用中,如报告生成、数据导出等场景。本实例将探讨如何使用Java技术来创建和导出Word文档。主要涉及的技术栈包括Apache POI库,它是一个强大的API...
1. **导出Word文档**: 使用XWPFDocument类创建和操作.docx文件。你可以创建XWPFParagraphs、XWPFTables等对象,填充文本、样式、图片等信息。例如,创建一个新的Word文档并写入文本: ```java XWPFDocument ...
java导出文件, freemarker导出word需要ftl文件,java导出Word常见问题。2.TXT修改后缀名为.ftl
在Java应用中,使用FreeMarker导出Word文档可以提供灵活的文本和数据结合的方式,尤其适用于生成报告、合同等复杂格式的文档。本篇将详细介绍如何使用FreeMarker与Java结合来导出包含多张图片的Word文档。 1. **...
Java导出Word的插件是一种在Java应用程序中用于创建、编辑和导出Microsoft Word文档的工具。这种插件使得开发者能够方便地在Java环境中处理Word文档,而无需直接使用Microsoft Office套件。以下是对这个主题的详细...
java导出word使用freemarker模板map数据导出word带图片 可以循环map 中list。 调用的2种方法在博客 https://blog.csdn.net/yjflinchong/article/details/122614203
java导出到word,进行写操作,如表格、生成图片等.