EXCEL导出工具类

public class ExportCvsUtil {

    public static Logger logger = LoggerFactory.getLogger(ExportCvsUtil.class);

    /**
     * 数据导出
     * @param csvName
     * @param type :rank,stats
     * @param bot_id
     * @param wordData
     * @param response
     */
    public static void exportSkillCsv(String csvName,String type,String bot_id, List<SkillExportDTO> wordData, HttpServletResponse response) {
        OutputStream os = null;
        CsvWriter csvOutput = null;
        try {
            char delimiter = ',';
            os = response.getOutputStream();// 取得输出流
            response.reset();// 清空输出流
            response.setHeader("Content-disposition", "attachment; filename=".concat(csvName).concat(".csv"));// 设定输出文件头
            response.setContentType("application/csv");// 定义输出类型
            csvOutput = new CsvWriter(os, delimiter, Charset.forName("GBK"));
            csvOutput.setEscapeMode(CsvWriter.ESCAPE_MODE_DOUBLED);
            String[] csvContent;
            if("rank".equals(type)) {
                if (!StringUtils.isEmpty(bot_id)) {
                    csvContent = new String[]{"序号", "技能名称", "活跃用户", "提问量"};
                } else {
                    csvContent = new String[]{"序号", "技能名称", "活跃用户", "提问量", "分发量"};
                }
            }else{
                csvContent = new String[]{"序号", "技能名称", "分发量", "调用量"};
            }
            csvOutput.writeRecord(csvContent);
            if (null != wordData && 0 < wordData.size()) {
                for (SkillExportDTO skillDo : wordData) {
                    if("rank".equals(type)) {
                        if (!StringUtils.isEmpty(bot_id)) {
                            csvContent = new String[]{skillDo.getSkill_no() + "", skillDo.getSkill_name(), skillDo.getActive_user_count() + "", skillDo.getAsk_count() + ""};
                        } else {
                            csvContent = new String[]{skillDo.getSkill_no() + "", skillDo.getSkill_name(), skillDo.getActive_user_count() + "", skillDo.getAsk_count() + "", skillDo.getDistribution() + ""};
                        }
                    }else{
                        csvContent = new String[]{skillDo.getSkill_no() + "", skillDo.getSkill_name(), skillDo.getDistribution() + "", skillDo.getAsk_count() + ""};
                    }

                    csvOutput.writeRecord(csvContent);
                }
            }
            csvOutput.flush();
            logger.info("csv生成成功");
        } catch (Exception ex) {
            logger.error("csv生成失败", ex);
        } finally {
            if (null != csvOutput) {
                try {
                    csvOutput.close();
                } catch (Exception e) {
                    logger.error("导出失败", e);
                }
            }
        }
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值