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