springboot如何导出Excel某个表的表字段以及字段类型

简介: springboot如何导出Excel某个表的表字段以及字段类型

Spring Boot本身并不提供导出Excel的功能,但可以使用Apache POI库来导出Excel文件。以下是一个示例代码,可以导出某个表的表字段以及字段类型。

首先,需要在pom.xml文件中添加Apache POI的依赖:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
</dependency>

然后,创建一个Controller来处理导出Excel的请求:

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.ByteArrayOutputStream;
import java.io.IOException;

@RestController
@RequestMapping("/export")
public class ExportController {
   

    @GetMapping("/excel")
    public ResponseEntity<ByteArrayResource> exportExcel() throws IOException {
   
        // 创建工作簿
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("表字段");

        // 获取表字段以及字段类型
        // 这里假设你已经获取到了表字段和字段类型的数据,可以使用JDBC等方式获取
        String[] fields = {
   "字段1", "字段2", "字段3"};
        String[] types = {
   "类型1", "类型2", "类型3"};

        // 写入表标题
        Row titleRow = sheet.createRow(0);
        titleRow.createCell(0).setCellValue("字段");
        titleRow.createCell(1).setCellValue("字段类型");

        // 写入表数据
        for (int i = 0; i < fields.length; i++) {
   
            Row row = sheet.createRow(i + 1);
            row.createCell(0).setCellValue(fields[i]);
            row.createCell(1).setCellValue(types[i]);
        }

        // 设置列宽自适应
        for (int i = 0; i < 2; i++) {
   
            sheet.autoSizeColumn(i);
        }

        // 将工作簿写入字节数组
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        workbook.write(outputStream);

        // 创建响应体并设置文件名
        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename=table_fields.xlsx");

        // 创建字节数组资源
        ByteArrayResource resource = new ByteArrayResource(outputStream.toByteArray());

        // 返回Excel文件
        return ResponseEntity.ok()
                .headers(headers)
                .contentType(MediaType.APPLICATION_OCTET_STREAM)
                .body(resource);
    }
}

以上代码会生成一个Excel文件,文件名为table_fields.xlsx,包含表字段以及字段类型的信息。访问/export/excel路径即可下载该文件。

相关文章
|
16天前
|
文字识别 BI
【图片型PDF】批量识别扫描件PDF指定区域局部位置内容,将识别内容导出Excel表格或批量改名文件,基于阿里云OCR对图片型PDF识别改名案例实现
在医疗和政务等领域,图片型PDF文件(如病历、报告、公文扫描件)的处理需求广泛。通过OCR技术识别这些文件中的文字信息,提取关键内容并保存为表格,极大提高了信息管理和利用效率。本文介绍一款工具——咕嘎批量OCR系统,帮助用户快速处理图片型PDF文件,支持区域识别、内容提取、导出表格及批量改名等功能。下载工具后,按步骤选择处理模式、进行区域采样、批量处理文件,几分钟内即可高效完成数百个文件的处理。
86 8
|
3月前
|
前端开发
实现Excel文件和其他文件导出为压缩包,并导入
实现Excel文件和其他文件导出为压缩包,并导入
52 1
|
3月前
|
数据格式 UED
记录一次NPOI库导出Excel遇到的小问题解决方案
【11月更文挑战第16天】本文记录了使用 NPOI 库导出 Excel 过程中遇到的三个主要问题及其解决方案:单元格数据格式错误、日期格式不正确以及合并单元格边框缺失。通过自定义单元格样式、设置数据格式和手动添加边框,有效解决了这些问题,提升了导出文件的质量和用户体验。
342 3
|
3月前
|
前端开发 Java easyexcel
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
SpringBoot操作Excel实现单文件上传、多文件上传、下载、读取内容等功能
238 8
|
3月前
|
Java API Apache
|
3月前
|
存储 Java API
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
Java实现导出多个excel表打包到zip文件中,供客户端另存为窗口下载
197 4
|
3月前
|
存储 easyexcel Java
SpringBoot+EasyExcel轻松实现300万数据快速导出!
本文介绍了在项目开发中使用Apache POI进行数据导入导出的常见问题及解决方案。首先比较了HSSFWorkbook、XSSFWorkbook和SXSSFWorkbook三种传统POI版本的优缺点,然后根据数据量大小推荐了合适的使用场景。接着重点介绍了如何使用EasyExcel处理超百万数据的导入导出,包括分批查询、分批写入Excel、分批插入数据库等技术细节。通过测试,300万数据的导出用时约2分15秒,导入用时约91秒,展示了高效的数据处理能力。最后总结了公司现有做法的不足,并提出了改进方向。
|
9月前
|
Java easyexcel 应用服务中间件
【二十五】springboot使用EasyExcel和线程池实现多线程导入Excel数据
【二十五】springboot使用EasyExcel和线程池实现多线程导入Excel数据
1008 0
|
Java 关系型数据库 MySQL
java入门019~springboot批量导入excel数据到mysql
java入门019~springboot批量导入excel数据到mysql
262 0
|
easyexcel Java Maven
【笑小枫的SpringBoot系列】【十二】JAVA使用EasyExcel导入excel
【笑小枫的SpringBoot系列】【十二】JAVA使用EasyExcel导入excel
825 0