欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JAVA如何讀取Excel數據

 更新時間:2020年09月04日 09:41:26   作者:孟應杰  
這篇文章主要介紹了JAVA如何讀取Excel數據,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下

1.創(chuàng)建Maven項目在pom文件中添加依賴

<dependencies>
    <!-- 舊的 .xls -->
    <!--<dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.17</version>
    </dependency>-->
    <!-- 新的 .xlsx -->
    <dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi-ooxml</artifactId>
      <version>3.17</version>
    </dependency>
  </dependencies>

2.編寫代碼

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.io.IOException;

public class PoiTest {
  public static void main(String[] args) throws IOException {
    FileInputStream is = new FileInputStream("src/main/resources/test.xlsx");
    XSSFWorkbook workbook = new XSSFWorkbook(is);
    //讀取Sheet
    Sheet sheet = workbook.getSheetAt(0);
    Row row = sheet.getRow(0);
    //獲取最大行數
    int rownum = sheet.getPhysicalNumberOfRows();
    //獲取最大列數
    int colnum = row.getPhysicalNumberOfCells();
    for (int i = 0; i < rownum; i++) {
      //獲取第i行數據
      row = sheet.getRow(i);
      for (int j = 0; j < colnum; j++) {
        Cell cell = row.getCell(j);
        cell.setCellType(CellType.STRING);
        String cellText = cell.getStringCellValue();
        System.out.print(cellText + "\t");
      }
      System.out.println();
    }
  }
}

3.報錯

3.1 異常解決Cannot get a STRING value from a NUMERIC cell poi

poi導入excel表格數據時報java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell異常是因為在讀取cell單元格字符串時,有number類型的數據,因此需要把它轉化為純String類型,這樣就不會報錯了。
報錯的地方類似于這樣。

//獲取單元格
XSSFCell cell = row.getCell(0);
//獲取單元格數據
String cellValue = cell.getStringCellValue();

在number類型轉化為String類型的過程中造成了Cannot get a STRING value from a NUMERIC cell這樣的問題,因此需要在讀取excel單元格數據轉化之前設置單元格類型為String,代碼如下。

//獲取單元格
XSSFCell cell = row.getCell(0);
//設置單元格類型
cell.setCellType(CellType.STRING);
//獲取單元格數據
String cellValue = cell.getStringCellValue();

3.2 poi導出Excel報錯java.lang.NoClassDefFoundError: org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorkbook$Factoryat

Exception in thread "main" java.lang.NoClassDefFoundError: org/openxmlformats/schemas/spreadsheetml/x2006/main/CTWorkbook$Factoryat org.apache.poi.xssf.usermodel.XSSFWorkbook.onWorkbookCreate(XSSFWorkbook.java:436)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:238)
at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:229)
at exportexcel.BuildXLSX.main(BuildXLSX.java:35)
Caused by: java.lang.ClassNotFoundException: org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook$Factory
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 4 more

錯誤原因:

未導入poi-ooxml-schema jar包。我使用的是poi-3.15 , 應該是poi-ooxml-schemas-3.15.jar包

以上就是JAVA如何讀取Excel數據的詳細內容,更多關于JAVA讀取Excel數據的資料請關注腳本之家其它相關文章!

相關文章

最新評論