EasyExcel は Excel エクスポートを実装します

イージーエクセル

EasyExcel は、大きなファイルのメモリ オーバーフローを解決する、Java ベースの高速かつ簡潔な Excel 処理ツールです。
これにより、パフォーマンス、メモリ、その他の要因を考慮することなく、Excel の読み取り、書き込み、その他の機能を迅速に完了できます。

依存関係を導入する

 	<dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>3.1.3</version> 
    </dependency>
```# 表结构
```java
CREATE TABLE `student`  (
  `id` bigint UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '学生表ID',
  `sname` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '学生姓名',
  `sno` bigint NOT NULL COMMENT '学号',
  `sex` char(2) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '性别',
  `age` int NOT NULL COMMENT '年龄',
  `is_deleted` tinyint UNSIGNED NOT NULL DEFAULT 0 COMMENT '是否删除',
  PRIMARY KEY (`id`)
);

ここに画像の説明を挿入します

以前にアップロードされた記事に一部のデータがインポートされていたため、テーブルにデータが存在し、直接エクスポートできるようになりました。

プロジェクトの構造

ここに画像の説明を挿入します

エクスポートテンプレートクラス

@Data
public class StudentVo {
    
    

    /**学生姓名**/
    @ExcelProperty(value = "姓名",index = 0)
    private String sname;
    /**学号**/
    @ExcelProperty(value = "学号",index = 1)
    private Long sno;
    /**性别**/
    @ExcelProperty(value = "性别",index = 2)
    private String sex;
    /**年龄**/
    @ExcelProperty(value = "年龄",index = 3)
    private Integer age;

}

コントローラ

@RestController
@RequestMapping("/easyExcel")
public class EasyExcelController {
    
    

    @Resource
    private IStudentService studentService;

    @PostMapping("/studentExport")
    public void studentExport(HttpServletResponse response){
    
    
        studentService.studentExport(response);
    }

}

サービス

public interface IStudentService extends IService<Student> {
    
    
    void studentExport(HttpServletResponse response);
}

サービス実装

@Service
public class StudentServiceImpl extends ServiceImpl<StudentMapper, Student> implements IStudentService {
    
    
    
    @Resource
    private StudentMapper studentMapper;
    
    @Override
    public void studentExport(HttpServletResponse response) {
    
    
        try {
    
    
            String fileName = "student";
            ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
            WriteSheet studentInfo = EasyExcel.writerSheet(0,"student")
                    .head(StudentVo.class).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .build();
            List<Student> studentList = studentMapper.selectList(null);
            excelWriter.write(studentList,studentInfo);

            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setCharacterEncoding("UTF-8");
            response.setHeader("Content-Disposition","attachment;filename="+fileName+".xlsx");
            excelWriter.finish();
        }catch (IOException e){
    
    
            e.printStackTrace();
        }
    }
}

マッパー

public interface StudentMapper extends BaseMapper<Student> {
    
    
}

スタートアッププロジェクト

ここに画像の説明を挿入します

ポストマンテスト

ここに画像の説明を挿入します

ここに画像の説明を挿入します
エクスポートに成功しました

おすすめ

転載: blog.csdn.net/m0_68681879/article/details/132449105