private void OnCreated(object sender, FileSystemEventArgs e)
{
excelDataSet.Clear();
string extension = Path.GetExtension(e.FullPath);
if (extension == ".xls" || extension == ".xlsx")
{
string ConnectionString = "";
if (extension == ".xls") { ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source = '" + e.FullPath + "';Extended Properties=\"Excel 8.0;HDR=YES;\""; }
if (extension == ".xlsx") { ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = '" + e.FullPath + "';Extended Properties=\"Excel 12.0;HDR=YES;\""; }
using (OleDbConnection conn = new OleDbConnection(ConnectionString))
{
conn.Open();
OleDbDataAdapter objDA = new OleDbDataAdapter("select * from [Sheet1$]", conn);
objDA.Fill(excelDataSet);
conn.Close();
conn.Dispose();
}
}
}
Это мой код.Это работает, когда запускается мой Filewatcher.Проблема в том, что у файла Excel, который я прочитал, есть 1 строка заголовка и 3 строки, которые имеют значения.Когда я использую этот код и проверяю количество строк в наборе данных, я получаю 9 .. Я понятия не имею, откуда он берет эти 9, я делаю что-то не так?Я проверяю свой код в течение последних 30-35 минут и все еще не могу найти, что я делаю неправильно. Я правильно понял столбец, но строки не работают.Мне не нужна строка заголовка btw
Обновление: в моем примере файла Excel было 3 строки, и я получил 9 в качестве числа строк.Я просто скопировал эти строки и сделал мой файл 24 строки + 1 строка заголовка, и когда я сделал rows.count, я получил 24 в качестве ответа.Так все работало нормально?Это нормально?