Java使用poi對Excel進行讀和寫處理
阿新 • • 發佈:2021-02-05
1、新建專案並匯入jar包,將jar包add library。
主要的jar如圖所示,jar包存放地址:https://pan.baidu.com/s/1VsjrnRfNkNEFRTTOt8rF5A 提取碼:ssf6
2、Java對Excel進行讀操作
先得到Excel總體的資料行數和列數,然後雙層迴圈進行讀取,row是行,col是列。
public class ExcelReadTest{ public void readTest() throws IOException { //獲取Excel檔案 File file = new File("D:\\test.xlsx"); //根據檔案的到workbook物件 Workbook workbook = WorkbookFactory.create(file); //得到工作表數量 int sheetCount = workbook.getNumberOfSheets(); for (int i = 0; i < sheetCount; i++){ Sheet sheet = workbook.getSheetAt(i); int rows = sheet.getLastRowNum()+1; Row tmp = sheet.getRow(0); if (null == tmp){ continue; } int cols = tmp.getPhysicalNumberOfCells(); //讀取資料 for (int row = 0; row < rows; row++){ Row r = sheet.getRow(row); for (int col = 0; col < cols; col++){ System.out.print(r.getCell(col).getNumericCellValue()+" "); } System.out.println(); } } } }
3、Java對Excel進行寫操作
先建立workboo物件,然後向其中建立sheet、row、cell進而填充資料,之後再將其寫到磁碟檔案。
public class ExcelWriteTest { public void writeTest() throws IOException { //建立工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); //建立工作表 HSSFSheet sheet = workbook.createSheet("sheet1"); for (int row = 0;row < 10; row++){ HSSFRow rows = sheet.createRow(row); for (int col = 0; col < 10; col++){ rows.createCell(col).setCellValue("data" + row + col); } } File file = new File("D:\\test1.xls"); if (!file.exists()){ file.createNewFile(); } FileOutputStream xlsStream = new FileOutputStream(file); workbook.write(xlsStream); }
4、小結
實際Java處理Excel分層次進行,先是Excel檔案,之後是sheet表,次之是row行,再次之是cell單元格。
讀Excel時先從磁碟讀出檔案,再從workbook一層一層的得到cell值
寫Excel時先從workbook一層一層建立到cell並往cell中寫值,在將檔案寫到磁碟。