EasyExcel使用(实现文件上传下载)

目录

一、读取时通用参数(工作蒲和工作表):

二、上传excel文件并且保存到数据库

三、查询数据库中的数据转换为excel表格下载到本地

四、easyexcel实现excel文件模板下载


一、读取时通用参数(工作蒲和工作表):

headRowNumber:指定需要读si是表格的列头行数(默认有一行头,也就是认为第二行开始起为数据)

二、上传excel文件并且保存到数据库

1.注解@ExcelIgnore在实体类中写,忽略这个实体类中的这个属性

三、查询数据库中的数据转换为excel表格下载到本地

四、easyexcel实现excel文件模板下载

1.将所要下载的文件模板放在resource文件夹下

2.控制层代码

    @ApiOperation("境内上市企业文件下载")
    @RequestMapping(value = "/fileDownload", method = RequestMethod.GET)
    public void download(HttpServletResponse response) throws FileNotFoundException {
        String fileName="境内上市企业.xlsx";
        FileUtil.downloadExcel(response,fileName);
    }

 3.文件下载模板工具类

/**
 * 文件下载模板工具类
 */
public class FileUtil {

    //下载模板
    public static void downloadExcel(HttpServletResponse response,String fileName){
        //方法一:直接下载路径下的文件模板(这种方式貌似在SpringCloud和Springboot中,打包成JAR包时,无法读取到指定路径下面的文件,不知道记错没,你们可以自己尝试下!!!)
        try {
            //文件名称
            //String fileName = "境内上市企业.xlsx";
            //设置要下载的文件的名称
            response.setHeader("Content-disposition", "attachment;fileName=" + fileName);
            //通知客服文件的MIME类型
            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
            //获取文件
            Resource fileResource = new ClassPathResource("/templates/excel/summary/" + fileName);
            InputStream input = fileResource.getInputStream();
            OutputStream out = response.getOutputStream();
            byte[] b = new byte[2048];
            int len;
            while ((len = input.read(b)) != -1) {
                out.write(b, 0, len);
            }
            //修正 Excel在“xxx.xlsx”中发现不可读取的内容。是否恢复此工作薄的内容?如果信任此工作簿的来源,请点击"是"
           //response.setHeader("Content-Length", String.valueOf(input.getChannel().size()));
            input.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }

    }


}

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
您可以使用EasyExcel库来实现通过上传文件将信息导入到数据库的功能。首先,在controller层中创建一个@RestController类,使用@Autowired注解注入Student4Reposotory对象,并使用@PostMapping注解创建一个excelToDb方法,该方法接收一个MultipartFile类型的参数file,用于接收上传的文件。在方法内部,您可以使用file.getInputStream()方法获取文件的输入流。然后,使用EasyExcel.read(inputStream)方法读取输入流,并使用.head(Student4.class)指定表头的类型为Student4类,使用.sheet()方法选择默认的sheet,最后使用.doReadSync()方法同步读取文件内容,并将结果保存在一个List<Student4>对象中。接下来,您可以调用student4Reposotory.saveAll(student4List)方法将数据保存到数据库中。最后,返回一个字符串"上传成功"表示操作成功完成。请确保您已经引入了EasyExcel库的依赖,并创建了与excel内容一致的Student4类。\[1\]\[2\] 另外,您还可以创建一个与excel内容一致的bean类,例如SerialEntity类,使用@ExcelIgnore注解忽略id字段,使用@ExcelProperty注解指定每个字段在excel中的标题和索引位置。\[2\] 如果您需要与前端进行交互,您可以创建一个CamperExcelVO类作为前后端交互的VO对象,该类包含一个infoId字段和一个camperExcelList字段,用于接收上传的营员名单信息。\[3\] 最后,您可以创建一个ResultInfo类作为返回结果的封装对象,该类包含code、msg和data字段,分别表示编码、错误信息和数据。您可以使用success和error方法创建成功和失败的结果对象。\[3\] #### 引用[.reference_title] - *1* [easyExcel把Excel文件里的数据导入数据库。从数据库导出到Excel,或浏览器直接下载为TXT格式 (非EasyExcel...](https://blog.csdn.net/zn403/article/details/130854124)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [利用easyexcel将excel文件数据导入到数据库](https://blog.csdn.net/weixin_42196915/article/details/111588689)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [用easyexcel简单导入excel到数据库详细](https://blog.csdn.net/m0_58625593/article/details/127412701)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值