java 读取阿里oss上传excel

java 读取阿里oss上传excel

package com.cudatec.overseas.cfg.util;

import org.apache.poi.POIXMLDocument;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.ss.usermodel.Cell;
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.*;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;

/**
 * @program: 
 * @description:
 * @author: 
 * @create: 
 **/
public class ImportExcelUtil {

     public static List<String> getUsers(String path) {
        List<String> users = new ArrayList<>();
        //excel文件路径
        try {
            //开始解析
            Workbook wb =getWorkbook(path);
            //读取sheet 0
            Sheet sheet = wb.getSheetAt(0);
            //第一行是列名,所以不读
            int firstRowIndex = sheet.getFirstRowNum();
            int lastRowIndex = sheet.getLastRowNum();
            //遍历行
            for (int rIndex = firstRowIndex; rIndex <= lastRowIndex; rIndex++) {
                Row row = sheet.getRow(rIndex);
                // 如果为空,不处理
                if (row == null) {
                    continue;
                }
                if (row != null) {
                    int indexMin=row.getFirstCellNum();
                    int indexMax=row.getLastCellNum();
                    for (int i = indexMin; i < indexMax; i++) {
                        Cell cell=row.getCell(i);
                        String cellStr;
                        if (cell == null) {
                            cellStr = "";
                            // 对布尔值的处理
                        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {
                            cellStr = String.valueOf(cell.getBooleanCellValue());
                            // 对数字值的处理
                        } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
                            cellStr = cell.getNumericCellValue() + "";
                        } else {
                            // 其余按照字符串处理
                            cellStr = cell.getStringCellValue();
                        }
                        users.add(cellStr);
                    }
                }
            }

        } catch (Exception e) {
            e.printStackTrace();
        }
        return users;
    }

    public static Workbook getWorkbook(String path) throws Exception{
        String type = path.substring(path.lastIndexOf(".") + 1);
        Workbook wb;
        //根据文件后缀(xls/xlsx)进行判断
        InputStream input = new URL(path).openStream();
        wb = createworkbook(input);
        return wb;
    }

    public static Workbook createworkbook(InputStream inp) throws IOException, InvalidFormatException {
        if (!inp.markSupported()) {
            inp = new PushbackInputStream(inp, 8);
        }
        if (POIFSFileSystem.hasPOIFSHeader(inp)) {
            return new HSSFWorkbook(inp);
        }
        if (POIXMLDocument.hasOOXMLHeader(inp)) {
            return new XSSFWorkbook(OPCPackage.open(inp));
        }
        throw new IllegalArgumentException("你的excel版本目前poi解析不了");
    }
}

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.14</version>
        </dependency>

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.14</version>
        </dependency>

你可能感兴趣的:(java)