java导出html word文档_java生成带html样式的word文件

根据上面的,现在我们只需要在服务器建一个.doc的文件,然后再把我们的带html样式的文本写到这个文件中,再下载到客户端就可以了

下面实现的代码,首先写一个工具类用来生成word文件

package net.uni.util;

import java.io.File;

import java.io.FileOutputStream;

import java.io.OutputStreamWriter;

/**

* 处理内容:生成带html样式的word文档

* @version: 1.0

* @see:net.uni.util.JavaWordUtil.java

* @date:2012-7-5

* @author:孙伟

*/

public class JavaWordUtil {

private JavaWordUtil(){}

private static String CHARSET = "gbk";//编码格式

private static String PATH = "E:uploadword";//本地测试路径

//private static String PATH = "/home/upload/base/word/";//服务器文件存放路径

/**

* @param fileName

* @param content

* @return

* @方法说明 生成word文档,如果返回null,则表示生成失败

* @date 2012-7-5

* @author 孙伟

*/

public static String createWordFile(String fileName,String content){

OutputStreamWriter os = null;

FileOutputStream fos = null;

try{

if(fileName.indexOf(".doc")>-1){

fileName = fileName.substring(0, fileName.length()-4);

}

File file = new File(PATH);

//如果目录不存在就创建

if (!(file.exists() && file.isDirectory())) {

file.mkdirs();

}

fileName = PATH + "" + fileName + "-" +System.currentTimeMillis() + ".doc";

//创建文件

File targetFile = new File(fileName);

if(!targetFile.exists()){

targetFile.createNewFile();

}

fos = new FileOutputStream(fileName);

os = new OutputStreamWriter(fos,CHARSET);

os.append(content.toString());

os.flush();

return fileName;

}catch(Exception e){

return null;

}finally{

try{

os.close();

fos.close();

}catch(Exception e){

return null;

}

}

}

}

然后就是struts2配置下载文件的步骤:

action里定义两个属性

private String conFileName;//生成的合同模板的word文件名称

private InputStream inputStream;//下载商务合同模板流

注意这两个属性的文件名称的get方法有些不同,为了处理文件名中文乱码的问题

public String getConFileName() {

String downFileName = conFileName;

try {

downFileName = new String(downFileName.getBytes(), "ISO8859-1");

} catch (UnsupportedEncodingException e) {

e.printStackTrace();

}

return downFileName;

}

然后是action的主方法

/**

* @return

* @throws ActionException

* @方法说明 下载商务合同模板

* @date 2012-7-5

* @author 孙伟

*/

public String downLoadCustCon() throws ActionException{

try{

StringBuffer content = new StringBuffer();

Long conId = this.cscustcon.getId();

this.cscustcon = this.csCustConService.findCsCustConbyID(conId);

ListconHead = csCustConService.findCustConHeadInfo(conId);

//合同头信息

for(String s : conHead){

content.append(s);

}

//合同条款已经条款的内容

List> conItem = csCustConService.findCustConContent(conId);

for(Listls : conItem){

for(String sl : ls){

content.append(sl);

}

}

String filePath = JavaWordUtil.createWordFile(cscustcon.getContName(), content.toString());

if(filePath==null||filePath.trim().equals("")) throw new ActionException("合同模板下载失败");

File file = new File(filePath);

if(!file.exists()){

throw new ActionException("文件不存在!");

}

conFileName = cscustcon.getContName()+".doc";

inputStream = new FileInputStream(file);

}catch(Exception e){

throw new ActionException("下载商务合同模板失败",e);

}

return SUCCESS;

}

struts.xml文件的配置:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值