java实现以固定的Excel模板导出Excel文件

package testModel;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import org.apache.commons.collections.map.HashedMap;
import org.apache.poi.ss.usermodel.Workbook;

import com.pactera.utils.UploadUtils;

import net.sf.jxls.transformer.XLSTransformer;


public class ExportTemplateTest {

    public static void main(String[] args) {

        // 测试导出数据
        export();
    }

    @SuppressWarnings({"unchecked" })
    public static void export() {
        FileOutputStream out = null;
        InputStream in = null;
        try {
            // 导出文件名
            String name = "导出测试.xlsx";

            // 导出路径(本地路劲)                                           D://opensour//apache-tomcat-8.0.30//webapps//file-service//uploadfile
            String exportPath = "D:\\opensour\\apache-tomcat-8.0.30\\webapps\\file-service\\uploadfile\\excelfile\\excelUploadTest";
            
            // 时间节
            String dateSplit = UploadUtils.getDateSplit(null);

            File file = new File(exportPath + "/" + dateSplit); // 判断文件是否存在,不存在就新建
            if(!file.exists()) {
                file.mkdirs();
            }
            // 获取数据(模拟查库)
            List<User> listUser = getUser();
            
            // 模板数据以Map封装List集合进行遍历读取
            Map<String,Object> map = new HashedMap();
            map.put("list", listUser);

            String path = exportPath + "/" + dateSplit + "/" + name;
            
            XLSTransformer transformer = new XLSTransformer();
            
            // 读入Excel模板
            InputStream stream = ExportTemplateTest.class.getResourceAsStream("/LifeHouseinspectionsExcel/excelDemo.xlsx");
            in = new BufferedInputStream(stream);
            
            // 获取Excel
            Workbook workBook = transformer.transformXLS(in, map);
            
            // 输出Excel文件
            out = new FileOutputStream(path);
            workBook.write(out);
            out.flush();

        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            if (in != null) {
                try {
                    in.close();
                } catch (IOException e) {
                }
            }
            if (out != null) {
                try {
                    out.close();
                } catch (IOException e) {
                }
            }
        }


    }

    // 数据源
    public static List<User> getUser(){

        List<User> listUser = new ArrayList<>();

         // 创建10条数据
        for (int i = 0; i < 10; i++) {
            User user = new User();
            user.setName("i一度不凡"+i);
            user.setSex("男");
            user.setPhone("137****4314");
            user.setEmail("iyedobufan@126.com");
            user.setAddress("平云广场A塔14楼");

            listUser.add(user);
        }
        return listUser;
    }
}
模板样式:

结果显示:

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值