當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
EasyExcel结合Springboot的将excel导入数据库
生活随笔
收集整理的這篇文章主要介紹了
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导入数据库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 低代码指南100解决方案:92智能化设备
- 下一篇: getprop导出雷电模拟器Androi