更新時間:2022-09-15 10:10:12 來源:動力節(jié)點 瀏覽2584次
Java導入Excel文件的方法是什么?動力節(jié)點小編來告訴大家。Java使用POI導入Excel文件,操作起來比較簡單,支持xlsx格式。
從官網(wǎng)https://poi.apache.org/下載POI,小編選擇的是版本是3.17,下載后文件名是poi-bin-3.17.zip。起初擔心版本太新,和現(xiàn)有項目不兼容,后來程序跑起來沒發(fā)現(xiàn)什么問題。
將poi-3.17下的jar包和poi-3.17lib*.jar包都復制到項目的WEB-INFlib下,并在項目配置編譯路徑。
在Java文件中添加以下引用,其中hssf用于xls格式,xssf用于xlsx格式。
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.ss.usermodel.DataFormatter;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
讀取Excel文件
HSSFWorkbook workbook = null;
try {
// 讀取Excel文件
InputStream inputStream = new FileInputStream('c: est.xlsx');
workbook = new HSSFWorkbook(inputStream);
inputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
遍歷Excel Sheet表
// 遍歷Excel Sheet
for (int numSheet = 0; numSheet < workbook.getNumberOfSheets(); numSheet++) {
workbook.getSheetAt(numSheet);
}
遍歷行
HSSFSheet sheet = workbook.getSheetAt(0);
if (sheet != null) {
// 循環(huán)行
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
HSSFRow row = sheet.getRow(rowNum);
if (row == null) {
continue;// 忽略并繼續(xù)讀取
}
HSSFCell cell = row.getCell(0);
if (cell == null) {
continue;
}
//System.out.println('cell.getStringCellValue0():' + cell.getStringCellValue());
cell = row.getCell(1);
if (cell == null) {
continue;
}
//System.out.println('cell.getStringCellValue1():' + cell.getStringCellValue());
}
}
導入Excel文件時,如果某列是數(shù)值類型,直接通過cell.getStringCellValue()會報Cannot get a text value from a numeric cell “Poi”錯誤。
解決辦法
DataFormatter formatter = new DataFormatter();
String val = formatter.formatCellValue(sheet.getRow(col).getCell(row));