springboot到处excel表格

导出Excel表格的两种方法
<

方法一:

 1. 引入依赖
<dependency>
 <groupId>org.apache.poi</groupId>
 <artifactId>poi-ooxml</artifactId>
 <version>3.17</version>
</dependency>

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
2.定义一个枚举:ExcelSheetSettingEnum(定义Excel的一些配置信息)
public enum ExcelSheetSettingEnum {
 REPORT_TEST("report_test", "Excel文件名称", new String[]{"Sheet名称1", "Sheet名称2"}, new String[]{"标题1", "标题2"}, new String[][]{
 {"字段名称A", "字段名称B", "字段名称C", "字段名称D"},
 {"字段名称A", "字段名称B", "字段名称C", "字段名称D"}
 }),
 REPORT_TEST2("report_test2", "Excel文件名称", new String[]{"标题1", "标题2"}),
 REPORT_TEST3("report_test3", "Excel文件名称")
 ;
 ExcelSheetSettingEnum(String code, String filename) {
 this.code = code;
 this.filename = filename;
 }
 ExcelSheetSettingEnum(String code, String filename, String[] titles) {
 this.code = code;
 this.filename = filename;
 this.titles = titles;
 }
 ExcelSheetSettingEnum(String code, String filename, String[] sheetnames, String[] titles, String[][] headers) {
 this.code = code;
 this.filename = filename;
 this.sheetnames = sheetnames;
 this.titles = titles;
 this.headers = headers;
 }
 /** 代码标识(必选) */
 private String code;
 /** 代码标识(必选) */
 private String filename;
 /** Sheet名称(可选) */
 private String[] sheetnames;
 /** Sheet标题(可选) */
 private String[] titles;
 /** 表头名称(可选) */
 private String[][] headers;
 // Getter & Setter(自己补充)
}

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

3.ExcelView
定义Excel视图,继承自AbstractXlsxView或者AbstractXlsView, 需要实现一个abstract方法buildExcelDocument用于创建Sheet,构造Excel数据。
继承关系如下:
在这里插入图片描述

/**
 * Excel视图
 *
 * 支持多个Sheet, Sheet名称、标题和表头不是必须的
 * AbstractPdfView和AbstractXlsxView原理大致相同
 *
 * @author mengday zhang
 */
public class ExcelView extends AbstractXlsxView {
 @Override
 protected void buildExcelDocument(Map<String, Object> map, Workbook workbook, HttpServletRequest request, HttpServletResponse response) throws Exception {
 ExcelSheetSettingEnum setting = (ExcelSheetSettingEnum) map.get("ExcelSheetSetting");
 // 设置文件名称
 String filename = setting.getFilename();
 filename = new String(filename.getBytes("UTF-8"),"ISO8859-1");
 response.setHeader(HttpHeaders.CONTENT_DISPOSITION,"attachment;filename=" + filename + ".xlsx");
 List<List<List<String>>> sheets = (List<List<List<String>>>) map.get("data");
 for (int i = 0; i < sheets.size(); i++) {
 // 创建sheet
 String[] sheetNames = setting.getSheetnames();
 String sheetName = "Sheet" + (i + 1);
 if (sheetNames != null && sheetNames.length > 0) {
 sheetName = sheetNames[i];
 }
 Sheet sheet = workbook.createSheet(sheetName);
 // 如果标题不为空的话,将表格的第一行作为标题行,并合并第一行的N个单元格
 int index = 0;
 String[] titles = setting.getTitles();
 String[][] headerss = setting.getHeaders();
 List<List<String>> rowsForTable = sheets.get(i);
 if (titles != null && titles.length > 0) {
 // 合并标题单元格 下标从0开始 起始行号,终止行号, 起始列号,终止列号
 CellRangeAddress region = new CellRangeAddress(0, 0, 0, rowsForTable.get(0).size() - 1);
 sheet.addMergedRegion(region);
 Row titleRow = sheet.createRow(index++);
 Cell titleCell = titleRow.createCell(0);
 CellStyle cellStyle = workbook.createCellStyle();
 cellStyle.setAlignment(HorizontalAlignment.CENTER);
 Font font = workbook.createFont();
 font.setFontName("黑体");
 font.setBold(true);
 font.setFontHeightInPoints((short) 15);
 cellStyle.setFont(font);
 titleCell.setCellStyle(cellStyle);
 titleCell.setCellValue(titles[i]);
 }
 // 创建表头行
 if (headerss != null && headerss.length > 0) {
 Row headerRow = sheet.createRow(index++);
 String[] headers = headerss[i];
 for(int j = 0; j < headers.length; j++) {
 headerRow.createCell(j).setCellValue(headers[j]);
 }
 }
 // 创建数据行
 AtomicInteger rowIndex = new AtomicInteger(index);
 rowsForTable.forEach(rowList -> {
 Row row = sheet.createRow(rowIndex.getAndIncrement());
 AtomicInteger x = new AtomicInteger();
 rowList.forEach(cell ->
 row.createCell(x.getAndIncrement()).setCellValue(cell)
 );
 });
 }
 }
}

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66

4.controller
mvc方法中方法的返回值是ModelAndView, 当代码执行 new ModelAndView(excelView, map)时会执行 ExcelView#buildExcelDocument的方法

@RestController
@RequestMapping("/excel")
public class ExcelController {
 @RequestMapping("/export")
 public ModelAndView export(){
 List<List<String>> sheet1 = Arrays.asList(
 Arrays.asList("1", "11", "111", "1111"),
 Arrays.asList("2", "22", "222", "2222"),
 Arrays.asList("3", "33", "333", "3333")
 );
 List<List<String>> sheet2 = Arrays.asList(
 Arrays.asList("4", "44", "444", "4444"),
 Arrays.asList("5", "55", "555", "5555"),
 Arrays.asList("6", "66", "666", "6666")
 );
 List<List<List<String>>> sheets = Arrays.asList(sheet1, sheet2);
 Map<String, Object> map = new HashMap<>();
 map.put("ExcelSheetSetting", ExcelSheetSettingEnum.REPORT_TEST2);
 map.put("data", sheets);
 ExcelView excelView = new ExcelView();
 return new ModelAndView(excelView, map);
 }
}

   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

效果如下:
在这里插入图片描述

方法二
使用easyexcel来做,阿里巴巴开源的一个插件
官网api
github链接
1.导入依赖

  <dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>easyexcel</artifactId>
     <version>2.1.6</version>
  </dependency>

   
   
  • 1
  • 2
  • 3
  • 4
  • 5

2.如果是java后端导出直接这一步即可,前后端分离,要在前端导出所以先导出在服务器,再下载,这也是目前还没有找到方法解决的一个问题(因为我用了组合形式,后面装二进制流的时候出现了问题,所以目前先下载到服务器再从服务器下载。后面在优化)

/**
     * 导出Excel表数据(存到服务器上)
     * @author dzb
     * @time 2020-05-26
     * @throws IOException
     */
    public Map<String,Object> exportExcel(Map<String,Object> param, HttpServletResponse response) throws IOException, ParseException {
        String uuid = param.get("uuid")+"";
        String path = "C:\\xxx+".xlsx";//param.get("path")+"";//服务器存储的excel表格路径
        Map<String,Object> resultMap = new HashMap<String, Object>();
        // 头的策略
        WriteCellStyle headWriteCellStyle = new WriteCellStyle();
        // 背景设置为白色
        headWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
        WriteFont headWriteFont = new WriteFont();
        headWriteFont.setFontHeightInPoints((short)13);
        headWriteCellStyle.setWriteFont(headWriteFont);
        // 内容的策略
        WriteCellStyle contentWriteCellStyle = new WriteCellStyle();
        // 这里需要指定 FillPatternType 为FillPatternType.SOLID_FOREGROUND 不然无法显示背景颜色.头默认了 FillPatternType所以可以不指定
        //contentWriteCellStyle.setFillPatternType(FillPatternType.SOLID_FOREGROUND);
        // 背景白色
        contentWriteCellStyle.setFillForegroundColor(IndexedColors.WHITE.getIndex());
        WriteFont contentWriteFont = new WriteFont();
        // 字体大小
        contentWriteCellStyle.setWriteFont(contentWriteFont);
        //设置 自动换行
        contentWriteCellStyle.setWrapped(true);
        //设置 垂直居中
        contentWriteCellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
//        //设置 水平居中
        contentWriteCellStyle.setHorizontalAlignment(HorizontalAlignment.CENTER);
    <span class="token comment">// 这个策略是 头是头的样式 内容是内容的样式 其他的策略可以自己实现</span>
    HorizontalCellStyleStrategy horizontalCellStyleStrategy <span class="token operator">=</span>
            <span class="token keyword">new</span> <span class="token class-name">HorizontalCellStyleStrategy</span><span class="token punctuation">(</span>headWriteCellStyle<span class="token punctuation">,</span> contentWriteCellStyle<span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭</span>
    ExcelWriter excelWriter <span class="token operator">=</span> null<span class="token punctuation">;</span>
    <span class="token keyword">try</span> <span class="token punctuation">{<!-- --></span>
        excelWriter <span class="token operator">=</span> EasyExcel<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>path<span class="token punctuation">,</span> ExcelHeaderInfor<span class="token punctuation">.</span><span class="token keyword">class</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">registerWriteHandler</span><span class="token punctuation">(</span>horizontalCellStyleStrategy<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span> <span class="token keyword">catch</span> <span class="token punctuation">(</span><span class="token class-name">Exception</span> e<span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
        e<span class="token punctuation">.</span><span class="token function">printStackTrace</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        resultMap<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span>ResultType<span class="token punctuation">.</span>SERVER_ERROR<span class="token punctuation">.</span><span class="token function">getCode</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span>ResultType<span class="token punctuation">.</span>SERVER_ERROR<span class="token punctuation">.</span><span class="token function">getDescription</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> resultMap<span class="token punctuation">;</span>
    <span class="token punctuation">}</span>

    <span class="token comment">// 这里 需要指定写用哪个class去写</span>
    <span class="token comment">//ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).build();</span>
    <span class="token comment">// 把sheet设置为不需要头 不然会输出sheet的头 这样看起来第一个table 就有2个头了</span>
    WriteSheet writeSheet <span class="token operator">=</span> EasyExcel<span class="token punctuation">.</span><span class="token function">writerSheet</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>GENERAL_TABLE<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">needHead</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">.</span>FALSE<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    WriteSheet writeSheet1 <span class="token operator">=</span> EasyExcel<span class="token punctuation">.</span><span class="token function">writerSheet</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>BAI_DU<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">needHead</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">.</span>FALSE<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    WriteSheet writeSheet2 <span class="token operator">=</span> EasyExcel<span class="token punctuation">.</span><span class="token function">writerSheet</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>SO_GOU<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">needHead</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">.</span>FALSE<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    WriteSheet writeSheet3 <span class="token operator">=</span> EasyExcel<span class="token punctuation">.</span><span class="token function">writerSheet</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>QI_HOO<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">needHead</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">.</span>FALSE<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    WriteSheet writeSheet4 <span class="token operator">=</span> EasyExcel<span class="token punctuation">.</span><span class="token function">writerSheet</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>XIN_LAN<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">needHead</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">.</span>FALSE<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">// 这里必须指定需要头,table 会继承sheet的配置,sheet配置了不需要,table 默认也是不需要</span>
    LoopMergeStrategy1 loopMergeStrategy <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">LoopMergeStrategy1</span><span class="token punctuation">(</span><span class="token number">2</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    WriteTable writeTable0 <span class="token operator">=</span> EasyExcel<span class="token punctuation">.</span><span class="token function">writerTable</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">needHead</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">.</span>FALSE<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">registerWriteHandler</span><span class="token punctuation">(</span>loopMergeStrategy<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    WriteTable writeTable1 <span class="token operator">=</span> EasyExcel<span class="token punctuation">.</span><span class="token function">writerTable</span><span class="token punctuation">(</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">needHead</span><span class="token punctuation">(</span>Boolean<span class="token punctuation">.</span>TRUE<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    List<span class="token operator">&lt;</span><span class="token operator">?</span> <span class="token keyword">extends</span> <span class="token class-name">Map</span><span class="token operator">&gt;</span> result <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token operator">&lt;</span>Map<span class="token generics function"><span class="token punctuation">&lt;</span>String<span class="token punctuation">,</span> Object<span class="token punctuation">&gt;</span></span><span class="token operator">&gt;</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    result <span class="token operator">=</span> <span class="token function">searchIntradayByPage</span><span class="token punctuation">(</span>param<span class="token punctuation">)</span><span class="token punctuation">;</span>
    List<span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span> generalTableData <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    List<span class="token generics function"><span class="token punctuation">&lt;</span>ExcelBaiduHeaderInfor<span class="token punctuation">&gt;</span></span> baiduData <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics function"><span class="token punctuation">&lt;</span>ExcelBaiduHeaderInfor<span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    List<span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span> xinLanData <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    List<span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span> qiHooData <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    List<span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span> sogouData <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>i <span class="token operator">&lt;</span> result<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>i<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
        String engine <span class="token operator">=</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"engine"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">;</span>
        ExcelHeaderInfor excelHeaderInfor <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ExcelHeaderInfor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

        Long crawlTime <span class="token operator">=</span> Long<span class="token punctuation">.</span><span class="token function">parseLong</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"crawlTime"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        String crawlTime2 <span class="token operator">=</span> JsonUtil<span class="token punctuation">.</span><span class="token function">getTimestampConversion</span><span class="token punctuation">(</span>crawlTime<span class="token punctuation">)</span><span class="token punctuation">;</span>
        excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setWatchTime</span><span class="token punctuation">(</span>crawlTime2<span class="token punctuation">)</span><span class="token punctuation">;</span>
        excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setSearchEngine</span><span class="token punctuation">(</span>engine<span class="token punctuation">)</span><span class="token punctuation">;</span>
        excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setPage</span><span class="token punctuation">(</span><span class="token string">"第"</span><span class="token operator">+</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"whichPage"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"页"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setKeyword</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setLink</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"detailUrl"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token comment">// excelHeaderInfor.setSnapshoot("http://www.seo945.com/xianhuo/snapshoot/45065.html");</span>
        excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setTitel</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"title"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setWebsite</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"website"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        generalTableData<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>excelHeaderInfor<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">switch</span> <span class="token punctuation">(</span>engine<span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
            <span class="token keyword">case</span> Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>BAI_DU<span class="token operator">:</span>
                ExcelBaiduHeaderInfor excelBaiduHeaderInfor <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ExcelBaiduHeaderInfor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setWatchTime</span><span class="token punctuation">(</span>crawlTime2<span class="token punctuation">)</span><span class="token punctuation">;</span>
                excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setSearchEngine</span><span class="token punctuation">(</span>engine<span class="token punctuation">)</span><span class="token punctuation">;</span>
                excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setPage</span><span class="token punctuation">(</span><span class="token string">"第"</span><span class="token operator">+</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"whichPage"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"页"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setKeyword</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setLink</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"detailUrl"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setSnapshoot</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"snapshoot"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setTitel</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"title"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setWebsite</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"website"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                baiduData<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>excelBaiduHeaderInfor<span class="token punctuation">)</span><span class="token punctuation">;</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">case</span> Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>XIN_LAN<span class="token operator">:</span>
                xinLanData<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>excelHeaderInfor<span class="token punctuation">)</span><span class="token punctuation">;</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">case</span> Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>QI_HOO<span class="token operator">:</span>
                qiHooData<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>excelHeaderInfor<span class="token punctuation">)</span><span class="token punctuation">;</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">case</span> Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>SO_GOU<span class="token operator">:</span>
                sogouData<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>excelHeaderInfor<span class="token punctuation">)</span><span class="token punctuation">;</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">default</span><span class="token operator">:</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>

    <span class="token comment">// 第一次写入会创建头</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token function">keywordsSummary</span><span class="token punctuation">(</span>param<span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">)</span><span class="token punctuation">,</span> writeSheet<span class="token punctuation">,</span> writeTable0<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">// 第二次写如也会创建头,然后在第一次的后面写入数据</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>generalTableData<span class="token punctuation">,</span> writeSheet<span class="token punctuation">,</span> writeTable1<span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">// 第一次写入会创建头</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token function">keywordsSummary</span><span class="token punctuation">(</span>param<span class="token punctuation">,</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">,</span> writeSheet1<span class="token punctuation">,</span> writeTable0<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">// 第二次写如也会创建头,然后在第一次的后面写入数据</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>baiduData<span class="token punctuation">,</span> writeSheet1<span class="token punctuation">,</span> writeTable1<span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">// 第一次写入会创建头</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token function">keywordsSummary</span><span class="token punctuation">(</span>param<span class="token punctuation">,</span><span class="token number">2</span><span class="token punctuation">)</span><span class="token punctuation">,</span> writeSheet2<span class="token punctuation">,</span> writeTable0<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">// 第二次写如也会创建头,然后在第一次的后面写入数据</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>xinLanData<span class="token punctuation">,</span> writeSheet2<span class="token punctuation">,</span> writeTable1<span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">// 第一次写入会创建头</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token function">keywordsSummary</span><span class="token punctuation">(</span>param<span class="token punctuation">,</span><span class="token number">3</span><span class="token punctuation">)</span><span class="token punctuation">,</span> writeSheet3<span class="token punctuation">,</span> writeTable0<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">// 第二次写如也会创建头,然后在第一次的后面写入数据</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>qiHooData<span class="token punctuation">,</span> writeSheet3<span class="token punctuation">,</span> writeTable1<span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">// 第一次写入会创建头</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span><span class="token function">keywordsSummary</span><span class="token punctuation">(</span>param<span class="token punctuation">,</span><span class="token number">4</span><span class="token punctuation">)</span><span class="token punctuation">,</span> writeSheet4<span class="token punctuation">,</span> writeTable0<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">// 第二次写如也会创建头,然后在第一次的后面写入数据</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>sogouData<span class="token punctuation">,</span> writeSheet4<span class="token punctuation">,</span> writeTable1<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">/// 千万别忘记finish 会帮忙关闭流</span>
    excelWriter<span class="token punctuation">.</span><span class="token function">finish</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

    <span class="token comment">//从服务器下载excel表格</span>
    <span class="token function">exportVehicleInfo</span><span class="token punctuation">(</span>response<span class="token punctuation">,</span>path<span class="token punctuation">,</span>uuid<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token function">delete</span><span class="token punctuation">(</span>path<span class="token punctuation">)</span><span class="token punctuation">;</span>
    resultMap<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token string">"success"</span><span class="token punctuation">,</span><span class="token string">"导出数据成功!"</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">return</span> resultMap<span class="token punctuation">;</span>
<span class="token punctuation">}</span>

/**
* 舆情总表关键词汇总
* @param param
* @param choose 0:舆情总表 1:百度 2、新浪 3、360 4、搜狗
* @return 所有关键词
* @throws IOException
* @throws ParseException
*/

private List<ExcelHeaderInfor> keywordsSummary(Map<String,Object> param,Integer choose) throws IOException, ParseException {
List<? extends Map> result = new ArrayList<Map<String, Object>>();
result = searchIntradayByPage(param);
String aa = null;
for(int i = 0;i < result.size();i++){
ExcelHeaderInfor excelHeaderInfor = new ExcelHeaderInfor();
excelHeaderInfor.setKeyword(result.get(i).get(“keyWords”)+"");
String engine = result.get(i).get(“engine”)+"";
switch (choose){
case 0:
if(StrUtil.isNotEmpty(aa)){
boolean flag = aa.contains(result.get(i).get(“keyWords”)+"");
if(flag){

                    <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{<!-- --></span>
                        aa <span class="token operator">=</span> aa <span class="token operator">+</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                    <span class="token punctuation">}</span>
                <span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token punctuation">{<!-- --></span>
                    aa <span class="token operator">=</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                <span class="token punctuation">}</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">case</span> <span class="token number">1</span><span class="token operator">:</span>
                <span class="token keyword">if</span><span class="token punctuation">(</span>engine<span class="token punctuation">.</span><span class="token function">equals</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>BAI_DU<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
                    ExcelBaiduHeaderInfor excelBaiduHeaderInfor <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ExcelBaiduHeaderInfor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                    excelBaiduHeaderInfor<span class="token punctuation">.</span><span class="token function">setKeyword</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                    <span class="token keyword">if</span><span class="token punctuation">(</span>StrUtil<span class="token punctuation">.</span><span class="token function">isNotEmpty</span><span class="token punctuation">(</span>aa<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
                        <span class="token keyword">boolean</span> flag <span class="token operator">=</span> aa<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                        <span class="token keyword">if</span><span class="token punctuation">(</span>flag<span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>

                        <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{<!-- --></span>
                            aa <span class="token operator">=</span> aa <span class="token operator">+</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                        <span class="token punctuation">}</span>
                    <span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token punctuation">{<!-- --></span>
                        aa <span class="token operator">=</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                    <span class="token punctuation">}</span>
                <span class="token punctuation">}</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">case</span> <span class="token number">2</span><span class="token operator">:</span>
                <span class="token keyword">if</span><span class="token punctuation">(</span>engine<span class="token punctuation">.</span><span class="token function">equals</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>XIN_LAN<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
                    excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setKeyword</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                    <span class="token keyword">if</span><span class="token punctuation">(</span>StrUtil<span class="token punctuation">.</span><span class="token function">isNotEmpty</span><span class="token punctuation">(</span>aa<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
                        <span class="token keyword">boolean</span> flag <span class="token operator">=</span> aa<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                        <span class="token keyword">if</span><span class="token punctuation">(</span>flag<span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>

                        <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{<!-- --></span>
                            aa <span class="token operator">=</span> aa <span class="token operator">+</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                        <span class="token punctuation">}</span>
                    <span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token punctuation">{<!-- --></span>
                        aa <span class="token operator">=</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                    <span class="token punctuation">}</span>
                <span class="token punctuation">}</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">case</span> <span class="token number">3</span><span class="token operator">:</span>
                <span class="token keyword">if</span><span class="token punctuation">(</span>engine<span class="token punctuation">.</span><span class="token function">equals</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>QI_HOO<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
                    excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setKeyword</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                    <span class="token keyword">if</span><span class="token punctuation">(</span>StrUtil<span class="token punctuation">.</span><span class="token function">isNotEmpty</span><span class="token punctuation">(</span>aa<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
                        <span class="token keyword">boolean</span> flag <span class="token operator">=</span> aa<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                        <span class="token keyword">if</span><span class="token punctuation">(</span>flag<span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>

                        <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{<!-- --></span>
                            aa <span class="token operator">=</span> aa <span class="token operator">+</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                        <span class="token punctuation">}</span>
                    <span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token punctuation">{<!-- --></span>
                        aa <span class="token operator">=</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                    <span class="token punctuation">}</span>
                <span class="token punctuation">}</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">case</span> <span class="token number">4</span><span class="token operator">:</span>
                <span class="token keyword">if</span><span class="token punctuation">(</span>engine<span class="token punctuation">.</span><span class="token function">equals</span><span class="token punctuation">(</span>Constants<span class="token punctuation">.</span>ExcelName<span class="token punctuation">.</span>SO_GOU<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
                    excelHeaderInfor<span class="token punctuation">.</span><span class="token function">setKeyword</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                    <span class="token keyword">if</span><span class="token punctuation">(</span>StrUtil<span class="token punctuation">.</span><span class="token function">isNotEmpty</span><span class="token punctuation">(</span>aa<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
                        <span class="token keyword">boolean</span> flag <span class="token operator">=</span> aa<span class="token punctuation">.</span><span class="token function">contains</span><span class="token punctuation">(</span>result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">""</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
                        <span class="token keyword">if</span><span class="token punctuation">(</span>flag<span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>

                        <span class="token punctuation">}</span><span class="token keyword">else</span><span class="token punctuation">{<!-- --></span>
                            aa <span class="token operator">=</span> aa <span class="token operator">+</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                        <span class="token punctuation">}</span>
                    <span class="token punctuation">}</span><span class="token keyword">else</span> <span class="token punctuation">{<!-- --></span>
                        aa <span class="token operator">=</span> result<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">"keyWords"</span><span class="token punctuation">)</span><span class="token operator">+</span><span class="token string">"、"</span><span class="token punctuation">;</span>
                    <span class="token punctuation">}</span>
                <span class="token punctuation">}</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
            <span class="token keyword">default</span><span class="token operator">:</span>
                <span class="token keyword">break</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>

    List<span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span> list <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ArrayList</span><span class="token generics function"><span class="token punctuation">&lt;</span>ExcelHeaderInfor<span class="token punctuation">&gt;</span></span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">if</span><span class="token punctuation">(</span>StrUtil<span class="token punctuation">.</span><span class="token function">isNotEmpty</span><span class="token punctuation">(</span>aa<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
        aa <span class="token operator">=</span> aa<span class="token punctuation">.</span><span class="token function">substring</span><span class="token punctuation">(</span><span class="token number">0</span><span class="token punctuation">,</span>aa<span class="token punctuation">.</span><span class="token function">length</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token number">1</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator">&lt;</span> <span class="token number">2</span><span class="token punctuation">;</span> i<span class="token operator">++</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
        ExcelHeaderInfor data <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">ExcelHeaderInfor</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        data<span class="token punctuation">.</span><span class="token function">setWatchTime</span><span class="token punctuation">(</span>aa<span class="token punctuation">)</span><span class="token punctuation">;</span>
        list<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>data<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    <span class="token keyword">return</span> list<span class="token punctuation">;</span>
<span class="token punctuation">}</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251

3.Constant常量类

/**
     * 搜索引擎的名称
     */
    public static final class ExcelName{
        public static final String GENERAL_TABLE="舆情处理总表";
        public static final String BAI_DU="百度";
        public static final String SO_GOU="搜狗";
        public static final String QI_HOO="360";
        public static final String XIN_LAN="新浪";
    }

 
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

4.下载并把服务器上的删除

/**
     * 从服务器上导出用户excel表
     * @author dzb
     * @time 2020-05-26
     * @param resp
     * @param path
     */
    public void exportVehicleInfo(HttpServletResponse resp,String path,String uuid) {
        DataInputStream in = null;
        OutputStream out = null;
        try{
            resp.reset();// 清空输出流
            String resultFileName = uuid+".xlsx";//filename + System.currentTimeMillis() + ".xlsx";
            resultFileName = URLEncoder.encode(resultFileName,"UTF-8");
            resp.setCharacterEncoding("UTF-8");
            resp.setHeader("Content-disposition", "attachment; filename=" + resultFileName);// 设定输出文件头
            resp.setContentType("application/msexcel");// 定义输出类型
            //输入流:本地文件路径
            in = new DataInputStream(
                    new FileInputStream(new File(path)));
            //输出流
            out = resp.getOutputStream();
            //输出文件
            int bytes = 0;
            byte[] bufferOut = new byte[1024];
            while ((bytes = in.read(bufferOut)) != -1) {
                out.write(bufferOut, 0, bytes);
            }
        } catch(Exception e){
            e.printStackTrace();
            resp.reset();
            try {
                OutputStreamWriter writer = new OutputStreamWriter(resp.getOutputStream(), "UTF-8");
                writer.write("系统异常");
                writer.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }finally {
            if(null != in) {
                try {
                    in.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if(null != out) {
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
<span class="token comment">/**
 * 用户下载完excel表后将服务器上的excel表进行删除
 * @author dzb
 * @time 2020-05-26
 * @param path
 */</span>
<span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">delete</span><span class="token punctuation">(</span>String path<span class="token punctuation">)</span><span class="token punctuation">{<!-- --></span>
    File delFile <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">File</span><span class="token punctuation">(</span>path<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">if</span><span class="token punctuation">(</span>delFile<span class="token punctuation">.</span><span class="token function">isFile</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">&amp;&amp;</span> delFile<span class="token punctuation">.</span><span class="token function">exists</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{<!-- --></span>
        <span class="token keyword">boolean</span> a <span class="token operator">=</span> delFile<span class="token punctuation">.</span><span class="token function">delete</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
<span class="token punctuation">}</span>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68

5.效果:
在这里插入图片描述

结语:个人推荐使用第一种方法,第二种较复杂一些,如果对你有帮助请留下一个赞

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值