All Downloads are FREE. Search and download functionalities are using the official Maven repository.

group.rober.dataform.util.LiteExcelUtils Maven / Gradle / Ivy

package group.rober.dataform.util;


import group.rober.runtime.kit.IOKit;
import group.rober.runtime.kit.StringKit;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.openxml4j.exceptions.NotOfficeXmlFileException;
import org.apache.poi.openxml4j.exceptions.OpenXML4JException;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.usermodel.Row.MissingCellPolicy;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFDataFormat;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;

/**
 * EXCEL操作快捷工具类,仅仅提供给DataForm模块使用,断掉dataform模块对office模块的依赖
 *
 * @author 杨松 [email protected]
 */
class LiteExcelUtils {

    /**
     * 打开EXCEL文件获取工作薄对象
     *
     * @param inputStream inputStream
     * @return Workbook
     * @throws IOException IOException
     */
    public static Workbook openWorkbook(InputStream inputStream) throws IOException {
        Workbook workBook = null;
        InputStream newIs = inputStream;
        try {
            try {
                newIs = IOKit.convertToByteArrayInputStream(newIs);
                workBook = new XSSFWorkbook(OPCPackage.open(newIs));
            } catch (NotOfficeXmlFileException e) {
                newIs.reset();
                workBook = new HSSFWorkbook(newIs);
            }
        } catch (IOException e) {
            throw e;
        } catch (OpenXML4JException e) {
            throw new IOException("读取流2007+格式异常", e);
        } finally {
            IOKit.close(newIs);
        }
        return workBook;
    }

    public static void autoSizeColumn(Sheet sheet){
        if(sheet.getLastRowNum()>0){
            Row row = sheet.getRow(0);
            int cols = row.getLastCellNum();
            for(int i=0;i




© 2015 - 2025 Weber Informatics LLC | Privacy Policy