0

我正在使用 ExcelDataReader 读取 Excel 文件的第一张表。但是,ExcelDataReader 告诉我 Excel 文件中存在多个工作表,即使我在 Excel 中打开 Excel 文件时只看到一张工作表。

这是我第一次遇到这种情况。ExcelDataReader 始终显示 Excel 文件中存在的确切工作表数。不多不少

这是我用来导入和读取 excel 文件的代码

public static bool CheckForHeader(string filePath)
        {
            DataSet ds;
            try
            {
                var extension = Path.GetExtension(filePath).ToLower();
                using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
                {
                    IExcelDataReader reader = null;
                    if (extension == ".xls")
                    {
                        reader = ExcelReaderFactory.CreateBinaryReader(stream);
                    }
                    else if (extension == ".xlsx")
                    {
                        reader = ExcelReaderFactory.CreateOpenXmlReader(stream);
                    }
                    else if (extension == ".csv")
                    {
                        reader = ExcelReaderFactory.CreateCsvReader(stream);
                    }

                    if (reader == null)
                        throw new Exception();

                    // reader.IsFirstRowAsColumnNames = firstRowNamesCheckBox.Checked;
                    using (reader)
                    {
                        ds = reader.AsDataSet(new ExcelDataSetConfiguration()
                        {
                            UseColumnDataType = false,
                            ConfigureDataTable = (tableReader) => new ExcelDataTableConfiguration()
                            {
                                UseHeaderRow = false
                            }
                        });
                    }
                }
            }
            catch
            { throw new Exception("Error while loading the Excel Spreadsheet. Please make sure that the file is not being used by another program."); }

            System.Data.DataTable workSheet = ds.Tables[0];
            string FRowFCol;


            FRowFCol = workSheet.Rows[0].ItemArray[0].ToString();
            if (FRowFCol.Contains('\\'))
                return false;


            return true;
        }

ds里面应该只有 1 个表格,因为 excel 文件只包含 1 个工作表。但相反,它显示它包含 5 个表。

4

0 回答 0