ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SpringBoot实现Excel导出

2022-07-16 00:01:38  阅读:149  来源: 互联网

标签:listBlogVOS SpringBoot Excel poi 导出 createCell import org setCellValue


1.maven依赖

点击查看代码
        <!--表格生成-->
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml-schemas</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.9</version>
        </dependency>

2.通过调用mapper方法查询到数据库的数据并生成表格

点击查看代码

import com.example.blog.mapper.BlogMapper;
import com.example.blog.service.ITableService;
import com.example.blog.vo.ListBlogVO;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * @Author QingHao
 * @Date: 2022/06/09/ 13:19
 * @Describe
 */
@Service
public class TableServiceImpl{

    @Autowired
    private BlogMapper mapper;


    public XSSFWorkbook formGeneration() {
        //查询数据库中的数据
        List<ListBlogVO> listBlogVOS = mapper.listSelect();

        XSSFWorkbook xssfSheets = new XSSFWorkbook();

        XSSFSheet userList = xssfSheets.createSheet("userList");

        Row titleRow = userList.createRow(0);//创建第一行,起始为0
        titleRow.createCell(0).setCellValue("id");//第一列
        titleRow.createCell(1).setCellValue("用户id");
        titleRow.createCell(2).setCellValue("标题");
        titleRow.createCell(3).setCellValue("摘要");
        titleRow.createCell(4).setCellValue("创建时间");
        titleRow.createCell(5).setCellValue("status");


        for (int i = 0; i < listBlogVOS.size(); i++) {
            Row row = userList.createRow(i + 1);//设置对哪一行操作
            row.createCell(0).setCellValue(listBlogVOS.get(i).getId());
            row.createCell(1).setCellValue(listBlogVOS.get(i).getUserId());
            row.createCell(2).setCellValue(listBlogVOS.get(i).getTitle());
            row.createCell(3).setCellValue(listBlogVOS.get(i).getDescription());
            row.createCell(4).setCellValue(listBlogVOS.get(i).getCreated()+"");
            row.createCell(5).setCellValue(listBlogVOS.get(i).getStatus()+"");
        }

        return xssfSheets;
    }

}

3.将生成的表格数据返回给前端页面

点击查看代码

import com.example.blog.service.ITableService;
import lombok.extern.slf4j.Slf4j;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;

/**
 * @Author QingHao
 * @Date: 2022/06/09/ 13:28
 * @Describe
 */
@Slf4j
@Controller
public class TableDowloadController {

    @Autowired
    private ITableService tableService;

    /**
     * 表格生成器
     *
     * @param response
     */
    @GetMapping("/tableDowload")
    public void tableDowload(HttpServletResponse response) {
        log.debug("开始生成表格数据");
        XSSFWorkbook xssfSheets = tableService.formGeneration();

        String fileName = "Goods报表.xlsx";
        OutputStream outputStream = null;
        try {
            fileName = URLEncoder.encode(fileName, "UTF-8");
            //设置ContentType请求信息格式
            response.setContentType("application/vnd.ms-excel");
            response.setHeader("Content-disposition", "attachment;filename=" + fileName);
            outputStream = response.getOutputStream();
            xssfSheets.write(outputStream);
            outputStream.flush();
            outputStream.close();
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

标签:listBlogVOS,SpringBoot,Excel,poi,导出,createCell,import,org,setCellValue
来源: https://www.cnblogs.com/Seasky-null/p/16483149.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有