ExcelDataReader показывает, что в файле Excel существует несколько листов, хотя файл имеет только один лист - PullRequest
0 голосов
/ 05 июня 2019

Я использую 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 таблиц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...