博主每次记录的都是自己从不会到会的过程,其实学习的过程就是摸打滚爬。我看了不少的博客,然后自己手动整理总结一份最简单的版本。保证一看就知道怎么回事。我的初衷就是先保证会用,然后在说后话。开始撸代码
第0步:添加依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
第一步:撸代码
package com.gaiaworks.paymentplatform.controller.zyzcontroller;import org.apache.poi.xssf.usermodel.*;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;import java.io.OutputStream;import java.io.UnsupportedEncodingException;import java.net.URLEncoder;/** * 文件名:ExcelTest * 作 者:Miles zhu * 时 间:2019/7/11 11:09 * ------------------------- * 功能和描述: **/@RestController@RequestMapping("zyz")public class ExcelTest { @RequestMapping("excel") public void excelTest(HttpServletRequest request, HttpServletResponse response) { try { request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("application/x-download"); String fileName = "test.xlsx"; fileName = URLEncoder.encode(fileName, "UTF-8"); response.addHeader("Content-Disposition", "attachment;filename=" + fileName); /************************************以上内容直接照抄--fileName根据自己实际来就行******************************************/ //第一步:定义一个新的工作簿 XSSFWorkbook web = new XSSFWorkbook(); //第二步:创建一个sheet页 XSSFSheet sheet = web.createSheet("firstSheet"); //设置行高 sheet.setDefaultRowHeight((short) (2 * 256)); //设置列宽 sheet.setColumnWidth(0, 4000); sheet.setColumnWidth(1, 4000); //设置样式或者是字体 XSSFFont font = web.createFont(); //设置字体 font.setFontName("宋体"); font.setFontHeightInPoints((short) 16); //创建第一行 XSSFRow row = sheet.createRow(0); //为该行创建第一个单元格 XSSFCell cell = row.createCell(0); //设置单元格中的内容--实际就是表头吧(每一列的名字--映射到数据表就是字段吧) cell.setCellValue("name "); //为该行创建第二个单元格 cell = row.createCell(1); //设置单元格中的内容--实际就是表头吧(每一列的名字--映射到数据表就是字段吧) cell.setCellValue("age "); //定义一个行 XSSFRow rows; //定义一个单元格 XSSFCell cells; for (int i = 1; i < 10; i++) { // 第三步:在这个sheet页里创建一行(每次循环都会创建一个新的行) rows = sheet.createRow(i); // 第四步:在该行创建一个单元格 cells = rows.createCell(0); // 第五步:在该单元格里设置值 cells.setCellValue("小狗" + i); //在该行创建的第二个单元格 cells = rows.createCell(1); //为该单元格设置值 cells.setCellValue(i + 1); } try { OutputStream out = response.getOutputStream(); web.write(out); out.close(); web.close(); } catch (IOException e) { e.printStackTrace(); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }}完---------------所有你想知道的我已经注释的很清楚了。