日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

EasyExcel结合Springboot的将excel导入数据库

發布時間:2024/1/1 javascript 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 EasyExcel结合Springboot的将excel导入数据库 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、 EasyExcel簡介

EasyExcel是一個基于Java的簡單、省內存的讀寫Excel的開源項目。在盡可能節約內存的情況下支持讀寫百M的Excel。

EasyExcel讀取Excel的解析原理:

2、導入相應的依賴文件

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.3</version> </dependency>

3、編寫對應數據庫字段的pojo類,使用注解注入

@Data @AllArgsConstructor @NoArgsConstructor @ToString @TableName("t_ordersetting") public class OrderSetting {@TableId(type = IdType.AUTO)private Integer id;//將java實體的屬性和excel文件的列對應起來@ExcelProperty("日期")@TableField(value = "orderDate")private Date orderDate;@ExcelProperty("可預約數量")private Integer number;private Integer reservations = 0; }

4、編寫對應下載的接口文件

(這里為固定的模版,不需要可以的去記錄,大概了解執行流程即可,取即可用)

@PostMapping("/upload")public Result upload(MultipartFile excelFile) throws IOException {//springboot項目回頭發布時,以jar包形式發布,接收文件時,能否將一個文件寫到項目的jar包中? 無法實現的//springboot項目接受文件時,一般采用外部存儲方式進行存儲.① 存到服務器的本地(某個目錄) ② 存儲到分布式文件存儲系統里(七牛云、阿里云、fastdfs、minio)if (excelFile != null) {//將文件存儲到當前機器的某個目錄String baseDir = "/Users/xixi/Desktop/helpht";//獲取上傳的文件的文件名 (ordersetting_template.xlsx)String originalFilename = excelFile.getOriginalFilename();String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));//生成一個唯一文件名String uniqueFilename = UUID.randomUUID().toString().replaceAll("-", "") + suffix;String dirPath = baseDir ;//確保存放文件的目錄是存在的File dirFile = new File(dirPath);if (!dirFile.exists()){dirFile.mkdirs();}//最終存放文件的文件路徑String filePath = dirPath + "/" + uniqueFilename;//保存文件excelFile.transferTo(new File(filePath));//讀取上傳后的文件中的內容,將數據添加/更新到ordersetting表中/*參數一File file: 要讀取的目標文件參數二Class head :將目標文件中的行記錄封裝到java的那個類型對象參數三ReadListener readListener :讀取過程中的回調對象(每讀取一行,封裝成一個對象后,都會觸發這個對象的invoke方法)*/List<OrderSetting> orderSettings = new ArrayList<>();EasyExcel.read(new File(filePath),OrderSetting.class,new SyncReadListener(){@Overridepublic void invoke(Object object, AnalysisContext context) {orderSettings.add((OrderSetting) object);}}).doReadAll();//更新或者添加for (OrderSetting orderSetting : orderSettings) {ordersettingService.addOrUpdate(orderSetting);}return Result.success(null);}return Result.error(Result.ERROR,"文件不能為空");}

5、需要準備對應的模版excel,同時在里面添加想要輸入的字段信息

6、使用ApiPost進行Controller接口的測試(導入模版文件執行)

7、查看數據庫對應的信息是否添加完成

總結

以上是生活随笔為你收集整理的EasyExcel结合Springboot的将excel导入数据库的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。