当前位置:首页 > 编程语言 > Java模式 > 正文内容

Java Excel Read Util

lcpsky1年前 (2023-03-22)Java模式399
<!-- poi excel 2003 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.17</version>
</dependency>

<!-- poi excel 2007 -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>


package com.lcpsky.common.excel;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * 功能描述: <br>
 * 〈excel 操作工具类〉
 * @Param:
 * @Return:
 * @Author: Administrator
 * @Date: 2023/03/06 10:10
 */
public class ExcelOperactionTool {

    /**
     * 读取excel内容
     * @param url
     * @return
     * @throws Exception
     */
    public static List<Object[]> readExcelData(String url)throws Exception{

        // 从XLSX/ xls文件创建的输入流
        FileInputStream fis = new FileInputStream(url);
        List<Object[]> hospitalList = new ArrayList<Object[]>();
        // 创建工作薄Workbook
        Workbook workBook = null;
        // 读取2007版以.xlsx 结尾
        if(url.toLowerCase().endsWith("xlsx")){
            try {
                workBook = new XSSFWorkbook(fis);
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                fis.close();
                workBook.close();
            }
        }
        // 读取2003版,以   .xls 结尾
        else if(url.toLowerCase().endsWith("xls")){
            try {
                workBook = new HSSFWorkbook(fis);
            } catch (IOException e) {
                e.printStackTrace();
            }finally {
                fis.close();
                workBook.close();
            }
        }
        //Get the number of sheets in the xlsx file
        int numberOfSheets = workBook.getNumberOfSheets();

        // 循环 numberOfSheets
        for(int sheetNum = 0; sheetNum < numberOfSheets; sheetNum++){

            // 得到 工作薄 的第 N个表
            Sheet sheet = workBook.getSheetAt(sheetNum);
            Row row;
            String cell;
            for(int i = sheet.getFirstRowNum(); i < sheet.getPhysicalNumberOfRows(); i++){
                // 循环行数
                row = sheet.getRow(i);
                List<String > cells = new ArrayList<>();
                for(int j = row.getFirstCellNum(); j < row.getPhysicalNumberOfCells(); j++){
                    // 循环列数
                    cell = row.getCell(j).toString();
                    cells.add(cell);
                }
                hospitalList.add(cells.toArray(new Object[0]));
            }
        }
        return hospitalList;
    }
}


扫描二维码推送至手机访问。

版权声明:本文由软件技术记录发布,如需转载请注明出处。

本文链接:https://lcpsky.top/?id=41

分享给朋友:
返回列表

没有更早的文章了...

下一篇:Java CSV CsvUtil

“Java Excel Read Util” 的相关文章

Java CSV CsvUtil

<!-- hutool工具包  --> <dependency>     <groupId>cn.hutool</groupId>    &nbs...