Exemplo n.º 1
0
    /// <summary>
    /// 加载Excel
    /// </summary>
    public bool Load()
    {
        try
        {
            _stream = new FileStream(ExcelPath, FileMode.Open, FileAccess.Read);

            if (ExcelPath.IndexOf(".xlsx") > 0)
            {
                _workbook = new XSSFWorkbook(_stream);
            }
            else if (ExcelPath.IndexOf(".xls") > 0)
            {
                _workbook = new HSSFWorkbook(_stream);
            }
            else
            {
                string extension = Path.GetExtension(ExcelPath);
                throw new Exception($"未支持的Excel文件类型 : {extension}");
            }

            for (int i = 0; i < _workbook.NumberOfSheets; i++)
            {
                ISheet sheet = _workbook.GetSheetAt(i);
                if (sheet.SheetName.StartsWith(ConstDefine.StrSheetLogo))
                {
                    SheetData sheetData = new SheetData(sheet.SheetName);
                    sheetData.Load(_workbook, sheet);
                    SheetDataList.Add(sheetData);
                }
            }

            // 如果没有找到有效的工作页
            if (SheetDataList.Count == 0)
            {
                throw new Exception($"没有发现包含 {ConstDefine.StrSheetLogo} 的页签");
            }
        }
        catch (Exception ex)
        {
            MessageBox.Show($"表格[{ExcelName}]加载错误:{ex}");
            return(false);
        }

        return(true);
    }