1. 程式人生 > 實用技巧 >【01】java操作excel,迴圈遍歷

【01】java操作excel,迴圈遍歷

使用org.apache.poi包下的HSSF相關方法,先後操作工作簿workbook、sheet、row、cell,最終定位到具體的單元格,getValue(cell)獲得的都是String型別。

只取一行的時候,rowNum=1(因為rowNum=0的時候,取的是表頭,也就是欄位名稱,不是資料);

只取一列的時候,cellNum=0。

取多行多列的時候,巢狀兩個for迴圈即可。

package com.course.coke.data;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.Arrays; public class Read { public
static void main(String[] args) throws IOException { InputStream inputStream = new FileInputStream("/Users/poi.xls"); POIFSFileSystem fs = new POIFSFileSystem(inputStream); HSSFWorkbook workbook = new HSSFWorkbook(fs); HSSFSheet sheet = workbook.getSheetAt(0); // 獲取第一個sheet頁
if (sheet == null){ return; } // 遍歷row for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) { HSSFRow row = sheet.getRow(rowNum); if (row==null){ continue; } // 遍歷列cell for (int cellNum = 0; cellNum <= row.getLastCellNum(); cellNum++) { HSSFCell cell = row.getCell(cellNum); if (cell==null){ continue; } System.out.print(" "+getValue(cell)); } System.out.println(); } } private static String getValue(HSSFCell cell){ if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN){ return String.valueOf(cell.getBooleanCellValue()); }else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){ return String.valueOf(cell.getNumericCellValue()); }else { return String.valueOf(cell.getRichStringCellValue()); } } }

執行結果如下:

 1.0 宋江 20.0
 2.0 張三 21.0
 3.0 李四 22.0
 4.0 王五 23.0
 5.0 朱六 24.0