Java Excel导出

Posted honghong75042

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java Excel导出相关的知识,希望对你有一定的参考价值。

package com.gome.budget.common.utils;

import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.metadata.Sheet;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;

public class ExcelExportUtil 

    public static void main(String[] args) throws FileNotFoundException 

        List<List<String>> header = createTestListStringHead();
        List<List<Object>> dataLists = createTestListObject();

        OutputStream os = new FileOutputStream("D:\\share\\expense.xlsx");
        ExcelExportUtil exporter = new ExcelExportUtil();
        exporter.initWriter(os);
        exporter.createSheet(1, 0, "损益表2", header)
                .writeDatas(dataLists);

        exporter.createSheet(2, 0, "费用表2", header)
                .writeDatas(dataLists);

        exporter.close();
    

    public ExcelExportUtil() 
    
    public static List<List<String>> createTestListStringHead() 
        List<List<String>> header = new ArrayList<List<String>>();
        List<String> headList = new ArrayList<String>();
        headList.add("预算组织");
        header.add(headList);

        headList = new ArrayList<String>();
        headList.add("项目");
        header.add(headList);

        headList = new ArrayList<String>();
        headList.add("前2个考核期实际数");
        header.add(headList);

        headList = new ArrayList<String>();
        headList.add("前1个考核期发生月实际数");
        header.add(headList);

        headList = new ArrayList<String>();
        headList.add("前1个考核期未发生月预测数");
        header.add(headList);

        headList = new ArrayList<String>();
        headList.add("前1个考核期预测数");
        header.add(headList);

        headList = new ArrayList<String>();
        headList.add("当前考核期上报数");
        header.add(headList);

        headList = new ArrayList<String>();
        headList.add("同比");
        header.add(headList);

        headList = new ArrayList<String>();
        headList.add("环比");
        header.add(headList);

        return header;
    
    public static List<List<Object>> createTestListObject() 
        List<List<Object>> dataList = new ArrayList<List<Object>>();
        List<Object> data = new ArrayList<Object>();
        data.add("电器集团");
        data.add("一、销售净额");
        data.add("33977039584.3376");
        data.add("21934607354.7551");
        data.add("13185382748.9218");
        data.add("35119990103.6769");
        data.add("37225695903.0281");
        data.add("6.00%");
        data.add("9.56%");
        dataList.add(data);

        data = new ArrayList<Object>();
        data.add("电器集团");
        data.add("减:销售折扣");
        data.add("-1058035879.32");
        data.add("2410985173.15");
        data.add("59573049.4876506");
        data.add("2470558222.63765");
        data.add("181020526.822908");
        data.add("-92.67%");
        data.add("117.11%");
        dataList.add(data);


        return dataList;
    

    private ExcelWriter writer;
    private List<Sheet> sheets = new ArrayList<Sheet>();

    /**
     * 初始化writer
     * @param os
     */
    public ExcelExportUtil initWriter(OutputStream os) 
        writer = EasyExcelFactory.getWriter(os);

        return this;
    

    public ExcelExportUtil createSheet(int sheetNo, int headLineMun, String sheetName, List<List<String>> header) 
        Sheet sheet1 = new Sheet(sheetNo, headLineMun);
        sheet1.setSheetName(sheetName);
        sheet1.setHead(header);
        sheet1.setAutoWidth(Boolean.TRUE);


        this.sheets.add(sheet1);

        return this;
    

    /**
     * 关闭资源
     */
    public void close() 
        writer.finish();
    

    public ExcelExportUtil writeDatas(List<List<Object>> dataLists) 
        //写第一个sheet, sheet1  数据全是List<String> 无模型映射关系
        for (Sheet sheet :
                sheets) 
            writer.write1(dataLists, sheet);
        

        return this;
    

    public ExcelWriter getWriter() 
        return writer;
    

    public void setWriter(ExcelWriter writer) 
        this.writer = writer;
    

    public List<Sheet> getSheets() 
        return sheets;
    

    public void setSheets(List<Sheet> sheets) 
        this.sheets = sheets;
    

 

以上是关于Java Excel导出的主要内容,如果未能解决你的问题,请参考以下文章

java导出excel

java 导出excel表格 高手进

java如何另存导出Excel

java导出excel

java excel导出到用户本地

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类