POI實現excel檔案的匯出和匯入
阿新 • • 發佈:2020-11-05
POI實現excel檔案的匯出和匯入
最近在專案中有使用到excel的匯入和匯出
話不多說,上教程
依賴的匯入
<!--poi的核心依賴--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml-schemas</artifactId> <version>3.15</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.15</version> </dependency>
excel的匯出步驟
1、建立一個工作簿XSSFWorkbook
2、建立工作表sheet
3、對其進行格式的調整
4、資料的寫入
5、輸出到指定檔案位置
匯出excel的簡單實現
/** * 建立表格 */ public static void createExcel(String filePath) throws IOException { //1、建立一個工作簿 XSSFWorkbook wb = new XSSFWorkbook(); //2、建立一個工作表sheet XSSFSheet sheet = wb.createSheet("欄位表"); //3、建立單元格樣式 XSSFCellStyle style = wb.createCellStyle(); style.setFillForegroundColor(IndexedColors.WHITE.getIndex());//設定背景顏色 style.setFillPattern(FillPatternType.NO_FILL); //填充樣式 有全部填充 有小點填充 有大點填充 //設定文字的格式 style.setAlignment(XSSFCellStyle.ALIGN_CENTER);//文字水平居中 style.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);//檔案垂直居中 style.setBorderBottom(BorderStyle.THIN);//邊框加黑 style.setBorderLeft(BorderStyle.THIN);//邊框加黑 style.setBorderRight(BorderStyle.THIN);//邊框加黑 style.setBorderTop(BorderStyle.THIN);//邊框加黑 //建立單元格 for (int i = 0; i < 6; i++) {//建立的行數 Row row = sheet.createRow(i);//建立行 for (int j = 0; j < 6; j++) {//每行的列數 row.createCell(j).setCellStyle(style); } } //合併單元格 引數說明 引數1:合併的開始行 引數2:合併的結束行 引數3:合併的開始單元格 引數4:合併結束的單元格 sheet.addMergedRegion(new CellRangeAddress(0,1,0,0)); sheet.addMergedRegion(new CellRangeAddress(0,0,1,5)); //4、插入資料 XSSFRow row = sheet.getRow(0);//獲取第一行 row.getCell(1).setCellValue("這裡是表名");//獲取第一行的第一個單元格,並且插入資料 XSSFRow row1 = sheet.getRow(1); row1.getCell(1).setCellValue("欄位1"); row1.getCell(2).setCellValue("欄位2"); row1.getCell(3).setCellValue("欄位3"); row1.getCell(4).setCellValue("欄位4"); row1.getCell(5).setCellValue("欄位5"); XSSFRow row2 = sheet.getRow(2); row2.getCell(0).setCellValue("資料行1"); XSSFRow row3 = sheet.getRow(3); row3.getCell(0).setCellValue("資料行2"); XSSFRow row4 = sheet.getRow(4); row4.getCell(0).setCellValue("資料行3"); XSSFRow row5 = sheet.getRow(5); row5.getCell(0).setCellValue("資料行4"); //5、輸出檔案位置 FileOutputStream fos = new FileOutputStream(filePath); wb.write(fos); System.out.println("檔案生成成功"); }
excel的匯入步驟
1、建立工作簿
2、遍歷工作表
3、遍歷行
4、設定讀取資料的型別
5、讀取資料
資料匯入的簡單實現
/** * 讀取表格 */ public static void readExcel(String fileName) throws IOException { InputStream in = new FileInputStream(new File(fileName)); //1、建立工作簿 XSSFWorkbook wb = new XSSFWorkbook(in); //2、獲取表的數量並且遍歷 int totalSheet = wb.getNumberOfSheets();//獲取共有多少個sheet for (int i = 0; i < totalSheet; i++) {//遍歷 XSSFSheet sheet = wb.getSheetAt(i); int totalRow = sheet.getPhysicalNumberOfRows();//總行數 //3、遍歷行 for (int j = 0; j < totalRow; j++) { XSSFRow row = sheet.getRow(j); int totalCell = row.getPhysicalNumberOfCells();//每行的單元格個數 //4、遍歷單元格 for (int k = 0; k < totalCell; k++) { Cell cell = row.getCell(k); //設定單元格的型別為String型別 cell.setCellType(CellType.STRING); System.out.print(cell.getStringCellValue()+"--"); } System.out.println(); } } }
這只是簡單的入門案例,當然,還可以結合物件進行讀取以及輸出,整合springBoot還可以使用自定義註解進行需要的欄位進行註解開發。