使用word的xml模板生成.doc文件

一、编辑模板 替换地方以变量标记如“案件编号”可写成{caseNo}

  template.xml

二、准备数据 以HashMap封装数据,原理是替换模板中的变量

三、替换操作

  选择输出位置:writePath

  WordUtil.printWordbyXMLWithOutputPath(templateFile, writePath, filename,
dataMap);


/**
* 打印word文档(传入参数需要传入输出文件的保存路径的)
* @param templateFile
* @param writeFilePath
* @param writeFileName
* @param analysisData 要替换的数据,map的形式传递
* @throws Exception
*/
public static void printWordbyXMLWithOutputPath(String templateFile, String writeFilePath,
String writeFileName, Map<String, String> analysisData) throws Exception{
writeFilePath = makePathFile(writeFilePath);
String writeFile = "";
if(writeFilePath.endsWith("\\") || writeFilePath.endsWith("/")){
writeFile += writeFilePath + writeFileName;
}else{
writeFile = writeFilePath + FILE_SEPARATOR + writeFileName;
}
printWordByXML(templateFile, writeFile, analysisData);
}


/**
* 打印word文档(输出路径不需要单独指出,保存在writeFile中即可)
* @param templateFile
* @param writeFile
* @param analysisData
* @throws Exception
*/
public static void printWordByXML(String templateFile,
String writeFile, Map<String, String> analysisData) throws Exception{
FileInputStream fis = null;
InputStreamReader isr = null;
BufferedReader in = null;
FileOutputStream fos = null;
OutputStreamWriter osw = null;
BufferedWriter out = null;
try {
fis = new FileInputStream(templateFile);
isr = new InputStreamReader(fis, "UTF-8");
in = new BufferedReader(isr);
fos = new FileOutputStream(writeFile);
osw = new OutputStreamWriter(fos, "UTF-8");
out = new BufferedWriter(osw);
String s;
while ((s = in.readLine()) != null) {
for (String key : analysisData.keySet()) {
String value = analysisData.get(key);
if (value != null) {
s = s.replace(key, value);
} else {
s = s.replace(key, "");
}
}
out.write(s);
out.newLine();
}

} catch (Exception e) {
e.printStackTrace();
} finally{
if(out != null){
out.close();
}
if(osw != null){
osw.close();
}
if(fos != null){
fos.close();
}
if(in != null){
in.close();
}
if(isr != null){
isr.close();
}
if(fis != null){
fis.close();
}

// DeleteFile(templateFile);
}

}


/**
* 验证目录是否存在,如果不存在,则创建对应目录。
* @param filePathName
*/
public static String makePathFile(String filePathName){
File pathFile = new File(filePathName);
if(!pathFile.exists()){
pathFile.mkdirs();
}
File childFile = new File(pathFile + "\\\\"
+ DateTools.dateToString( new Date(),"yyyyMM"));//xiexiangning
if (!childFile.exists()) {
childFile.mkdir();
}
return childFile + "\\\\";
}

使用word的xml模板生成.doc文件,布布扣,bubuko.com

时间: 2024-10-14 00:20:15

使用word的xml模板生成.doc文件的相关文章

使用C#调用Word的接口生成doc文件与htnl文件

作为从C#开始并只使用C#,没有接触过VB,只使用.net,没使用过COM的开发人员,一直不太明白COM是什么鬼. 现看到书上的一个粟子:一个典型的COM就是word操作的API(个人理解). public static void WordTest() { Application app = new Application { Visible = true }; app.Documents.Add(); Document doc = app.ActiveDocument; Paragraph p

VC输出word——读取xml模板并存储为多页(加入分页符)

项目中遇到一个新需求,要输出一些数据到word表格,而数据量不确定,超过一页的话需要分割输出多页word.师弟对此表示摇头,没办法,我只好抽时间亲自上阵. OK,首先要搞明白xml里面word是如何进行分页的. 我在word里面新建了两个文档,一个只有一页,另一个有两页,中间有一个分页符和一个换行符(作用后面再说),像下面两张图一样: 然后将两张图另存为XML模板,这里我导出的是03版本的,其中第一个文档,找到其<body>到</body>之间的字符: <w:body>

itextsharp利用模板生成pdf文件笔记

iTextSharp是一款开源的PDF操作类库,使用它可以快速的创建PDF文件. 中文参考网站:http://hardrock.cnblogs.com/ http://pdfhome.hope.com.cn/Article.aspx?CID=bf51a5b6-78a5-4fa3-9310-16e04aee8c78&AID=f5fe52dd-8419-4baa-ab1c-ea3f26952132 英文参考网站:http://itext.ugent.be/library/ ·  技术文章(http:

根据模板生成html文件并下载

该模块用于相关内容导出功能,先读取模板文件,再替换模板中的内容,最后直接以流的形式提供下载.主要代码如下: String templateContent = ""; // 读取模板文件 FileInputStream fileinputstream = new FileInputStream(filePath); InputStreamReader isr = new InputStreamReader(fileinputstream, "utf-8"); Buff

java itextpdf使用HTML模板生成pdf文件,并设置table

我们这里是maven项目,导入相应jar包: <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3.23</version> </dependency> <dependency> <groupId>com.itextpdf</groupId>

Spring 中 AbstractExcelView 支持根据模板生成Excel文件. 通过设置 view 的 URL 属性指定模板的路径

 注意:1. 模板需放在 WEB-INF 目录下2. 指定模板路径时不需要添加扩展名, Spring将自动添加 .xls 到URL 属性中.3. 在指定URL前需先设置 view 的 ApplicationContext 1. 控制器配置 control-context.xml 1 <bean id="beanNameViewResolver" 2 class="org.springframework.web.servlet.view.BeanNameViewResol

eclipse生成doc文件乱码

正确生成:在所写项目右击----Export----Java----javadoc---next ----一直next---finish. 乱码时:1)右击----Export----Java----javadoc---next--出现下面界面 2)一直next ----如下图输入:javadoc -encoding UTF-8 -charset UTF-8

jxls使用模板生成excel文件

http://www.aiduw.com/37/37897/6881409.html http://www.aiduw.com/37/37897/6881410.html http://www.aiduw.com/37/37897/6881411.html http://www.aiduw.com/37/37897/6881412.html http://www.aiduw.com/37/37897/6881413.html http://www.aiduw.com/37/37897/68814

Word 2007 XML 解压缩格式

简介 Microsoft Office Word 2007提供了一种新的默认文件格式,叫做Microsoft Office Word XML格式(Word XML格式).这种格式基于开放打包约定(Open Packaging Conventions),XML Paper Specification (XPS)也是基于这个约定.Microsoft Office 97到Microsoft Office 2003中使用的二进制文件格式仍然可以作为一种保存格式来使用,但是它不是保存新文档时的默认文档.