Java用POI解析excel并获取所有单元格数据的实例

2025-05-29 0 32

1.导入POI相关jar包

org.apache.poi jar

2.代码示例

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65
public List getAllExcel(File file, String tableName, String fname,

  String enterpriseId, String reportId, String projectId)

  throws FileNotFoundException, IOException, ClassNotFoundException,

  InstantiationException, IllegalAccessException,

  NoSuchMethodException, SecurityException, IllegalArgumentException,

  InvocationTargetException, ParseException {

  List listt = new ArrayList();

  try {

    FileInputStream fis = new FileInputStream(file);

    Workbook workbook = null;

    if (fname.toLowerCase().endsWith("xlsx")) {

      workbook = new XSSFWorkbook(fis);

    } else if (fname.toLowerCase().endsWith("xls")) {

      workbook = new HSSFWorkbook(new POIFSFileSystem(fis));

    }

    int numberOfSheets = workbook.getNumberOfSheets();

    for (int i = 0; i < numberOfSheets; i++) {

      Sheet sheet = workbook.getSheetAt(i);

      for (int j = 1; j < sheet.getPhysicalNumberOfRows(); j++) { // 获取每行

        XSSFRow row = (XSSFRow) sheet.getRow(j);

        if(row!=null){

          List list = new ArrayList();

          for (int k = 0; k < sheet.getRow(0).getPhysicalNumberOfCells(); k++) { // 获取每个单元格

            Cell cell = row.getCell(k);

            if (cell == null) {

              list.add("");

              continue;

            }

            switch (cell.getCellType()) {

            case Cell.CELL_TYPE_STRING:

              list.add(cell.getRichStringCellValue().getString());

              break;

            case Cell.CELL_TYPE_NUMERIC:

              if (DateUtil.isCellDateFormatted(cell)) {

                list.add(cell.getDateCellValue());

              } else {

                list.add(cell.getNumericCellValue());

              }

              break;

            case Cell.CELL_TYPE_BOOLEAN:

              list.add(cell.getBooleanCellValue());

              break;

            case Cell.CELL_TYPE_FORMULA:

              list.add(cell.getCellFormula());

              break;

            default:

              list.add("");

            break;

          }

        }

        listt.add(getByReflect(tableName, list, enterpriseId,reportId, projectId));

      }

    }

  }

    fis.close();

      } catch (IOException e) {

        e.printStackTrace();

      }

    return listt;

}

以上这篇Java用POI解析excel并获取所有单元格数据的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持快网idc。

原文链接:http://www.cnblogs.com/xiaofengyuan/p/5756287.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java用POI解析excel并获取所有单元格数据的实例 https://www.kuaiidc.com/114342.html

相关文章

发表评论
暂无评论