0
点赞
收藏
分享

微信扫一扫

java导出excel或者word

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

首先,用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 条评论