package com.softwarebr.nunu.util;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.brframework.commoncms.utils.excel.ExcelUtil;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

import java.io.OutputStream;
import java.util.List;
import java.util.Map;

/**
 * @author lilin
 * @date 2020-03-16 09:44
 */
public class ExcelUtils {


    /**
     * 文件导出全部数据
     * @param dataJson jsonArray格式,将数据转换成JsonArray，目的是解决导出数据里的时间序列化的问题
     * @param headers 数据首行标题 headers.put("id","1")
     * @param output response.getOutputStream()
     */
    public static void exportExcel(String dataJson, Map<String, String> headers, OutputStream output){
        List<Map<String, String>> values = Lists.newArrayList();
        //将数据转换成JsonArray，目的是解决导出数据里的时间序列化的问题
        JSONArray jsonArray = JSON.parseArray(dataJson);
        for (Object v : jsonArray) {
            Map<String, String> node = Maps.newLinkedHashMap();
            JSONObject jsonObject = JSONObject.parseObject(v.toString());
            for (String key : headers.keySet()) {
                node.put(key, jsonObject.getString(key));
            }
            values.add(node);
        }
        ExcelUtil.exportExcel(headers, values, output);
    }


}
