0
点赞
收藏
分享

微信扫一扫

java导出excel或者word

天涯学馆 2021-09-21 阅读 87

首先,用word 或者 excel 画出模板,保存成xml格式,放在服务器中,后端调用方法读取服务模板即可
下载以后如果打不开 那可能是 wps 和 office 可能有些许不同 导致互相有些许的 不兼容,所以 尽量根据用户的工具进行编写模板

/**
* 功能描述: <br>
* 〈导出word〉
* @Param: [date, flag]
* @Return: java.util.Map<java.lang.String,java.lang.Object>
* @Author: 于海波
* @Date: 2019/10/15 15:30
*/

@Override
public Map<String, Object> wordPilotageReport(String date, String flag) {

Map<String, Object> returnMap = new HashMap<String, Object>();
try {
PilotageAnnualReport pilotageAnnualReport = getPilotageAnnualReport(date,flag);
Map<String, Object> exportMap = new HashMap<String, Object>();
exportMap.put("result", pilotageAnnualReport);
exportMap.put("date", date);
String xmlName;
if(flag.equals("year")){
xmlName = "pilotageAnnualReport_yangjiang";
}else{
xmlName = "pilotageMonthlyReport_yangjiang";
}
// .doc 改成 .xls 就是表格了
XlsTool.ftl(exportMap, xmlName+".xml", xmlName+".doc");
returnMap.put("fileName",downloadDomain+xmlName+".doc");
} catch (Exception e) {
e.printStackTrace();
}
return returnMap;
}

同事提供的工具,很简单

package cn.smartpilot.yangjiang.utils;


import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.OutputStreamWriter;
import java.io.Writer;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import freemarker.template.Configuration;
import freemarker.template.Template;
@Component
public class XlsTool {
private static SystemPropertiesConfig systemPropertiesConfig;
@Autowired
public void init(SystemPropertiesConfig systemPropertiesConfig) {
XlsTool.systemPropertiesConfig = systemPropertiesConfig;
}
public static void ftl(Object map, String ftl, String file) throws Exception{
// 1.设置配置类
Configuration configuration = new Configuration(Configuration.getVersion());
//2. 设置模板所在的目录
configuration.setDirectoryForTemplateLoading(new File(systemPropertiesConfig.getFtlPath()));
//3.设置字符集
configuration.setDefaultEncoding("utf-8");
//4.加载模板
Template template = configuration.getTemplate(ftl);
//5.创建数据模型
//6.创建Writer对象
// FileWriter writer = new FileWriter(new File(systemPropertiesConfig.getExportFilePath()+file));
Writer writer = new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(
new File(systemPropertiesConfig.getExportFilePath()+file)
), "UTF-8"
)
);

//7.输出数据模型到文件中
template.process(map, writer);
//8.关闭Writer对象
writer.close();
}

}

举报

相关推荐

0 条评论