public class ExportCvsUtil {
public static Logger logger = LoggerFactory.getLogger(ExportCvsUtil.class);
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);
}
}
}
}
}