.csv格式文件上傳
目前EsayExcel框架僅支持.xls和.xlsx格式的表格上傳,針對於.csv格式的文件上傳,需要單獨書寫工具類,步驟如下:
1. 導入對於的maven架包
<dependency> <groupId>net.sourceforge.javacsv</groupId> <artifactId>javacsv</artifactId> <version>2.0</version> </dependency>
2. 增加配置
spring: multipart: #設置文件上傳大小 max-file-size: 100MB max-request-size: 100MB
3. 後臺代碼
@RequestMapping("/importExcel") public String importExcelPCT(MultipartFile file) throws IOException, ParseException { String filename = file.getOriginalFilename(); if (StringUtils.isEmpty(filename)) { return "未找到上傳文件"; } CsvReader csvReader = new CsvReader(new BufferedInputStream(file.getInputStream()), Charset.forName("GBK")); boolean flag = false; String returnMsg = ""; //t1代表表格的列數 int tl = 0; while (csvReader.readRecord()) { long rowIndex = csvReader.getCurrentRecord(); String obj = csvReader.getRawRecord(); if (StringUtils.isEmpty(obj)) { flag = true; returnMsg = "數據爲空"; break; } else { //因csv上傳數據是以逗號分割的文本數據,要進行切割 List<String> list = new ArrayList<>(Arrays.asList(obj.split(","))); if (list.isEmpty()) { break; } if (rowIndex == 1) { tl = list.size(); } if (rowIndex >= 1) { // 避免最後單元格爲空時,將集合保持相同長度,當表格中後部分存在爲空的情況,不會讀取後面爲空的列 int k = list.size(); if (k < tl) { int w = tl - k; for (int i = 0; i < w; i++) { list.add(""); } } //todo 此次開始處理獲取到的數據,可以向數據庫中進行插入 } } } return null; }
以上功能親測有效,如果對以上內容有所疑問的,歡迎留言交流。
轉載請說明出處,本人博客地址爲:https://www.cnblogs.com/chenyuanbo/