您好,登錄后才能下訂單哦!
SpringBoot中如何使用POI導(dǎo)入導(dǎo)出Excel,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。
HSSFWorkbook workbook = new HSSFWorkbook();
//獲取文檔信息,并配置 DocumentSummaryInformation dsi = workbook.getDocumentSummaryInformation(); //文檔類別 dsi.setCategory("員工信息"); //設(shè)置文檔管理員 dsi.setManager("江南一點(diǎn)雨"); //設(shè)置組織機(jī)構(gòu) dsi.setCompany("XXX集團(tuán)"); //獲取摘要信息并配置 SummaryInformation si = workbook.getSummaryInformation(); //設(shè)置文檔主題 si.setSubject("員工信息表"); //設(shè)置文檔標(biāo)題 si.setTitle("員工信息"); //設(shè)置文檔作者 si.setAuthor("XXX集團(tuán)"); //設(shè)置文檔備注 si.setComments("備注信息暫無");
這些信息將顯示在詳細(xì)信息窗格中:
HSSFSheet sheet = workbook.createSheet("XXX集團(tuán)員工信息表");
HSSFRow headerRow = sheet.createRow(0);
0表示第一行。
HSSFCell cell0 = headerRow.createCell(0); cell0.setCellValue("編號(hào)");
baos = new ByteArrayOutputStream(); workbook.write(baos);
return new ResponseEntity<byte[]>(baos.toByteArray(), headers, HttpStatus.CREATED);
核心步驟就這七個(gè)步驟,當(dāng)然還有其他設(shè)置單元格數(shù)據(jù)格式、單元格背景、單元格寬度等,大家可以在源碼中研究,這里就不贅述了。
數(shù)據(jù)導(dǎo)入主要涉及三個(gè)步驟 1.文件上傳;2.Excel解析;3.數(shù)據(jù)插入。 第三步就比較簡單了,我們這里重點(diǎn)來看看前兩個(gè)步驟。
文件上傳采用了ElementUI中的Upload控件,如下:
<el-upload :show-file-list="false" accept="application/vnd.ms-excel" action="/emp/basic/importEmp" :on-success="fileUploadSuccess" :on-error="fileUploadError" :disabled="fileUploadBtnText=='正在導(dǎo)入'" :before-upload="beforeFileUpload" > <el-button size="mini" type="success" :loading="fileUploadBtnText=='正在導(dǎo)入'"><i class="fa fa-lg fa-level-up" ></i>{{fileUploadBtnText}} </el-button> </el-upload>
正在上傳時(shí),文件上傳控件不可用,上傳成功或者失敗之后才可用,上傳過程中,上傳按鈕會(huì)有l(wèi)oading顯示。
然后在SpringMVC中接收上傳文件即可:
@RequestMapping(value = "/importEmp", method = RequestMethod.POST) public RespBean importEmp(MultipartFile file) { //... }
將上傳到的MultipartFile轉(zhuǎn)為輸入流,然后交給POI去解析即可??梢苑譃槿缦滤膫€(gè)步驟:
HSSFWorkbook workbook = new HSSFWorkbook(new POIFSFileSystem(file.getInputStream()));
int numberOfSheets = workbook.getNumberOfSheets(); for (int i = 0; i < numberOfSheets; i++) { HSSFSheet sheet = workbook.getSheetAt(i); //... }
int physicalNumberOfRows = sheet.getPhysicalNumberOfRows(); Employee employee; for (int j = 0; j < physicalNumberOfRows; j++) { if (j == 0) { continue;//標(biāo)題行 } //... }
int physicalNumberOfCells = row.getPhysicalNumberOfCells(); employee = new Employee(); for (int k = 0; k < physicalNumberOfCells; k++) { HSSFCell cell = row.getCell(k); //... }
關(guān)于SpringBoot中如何使用POI導(dǎo)入導(dǎo)出Excel問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。