Заполнение DataGridView из excel файла

суббота, 7 ноября 2009, Alexander Honcharuk

В этом посте я хочу продемонстрировать один из возможных способов чтения информации из электронных таблиц excel и её отображение у Windows приложении.

1)      Я создаю проект Windows Application c формой, на которую помещаю DataGridView control и кнопку Start, на которую цепляю EventHandler.

2)      Создаю класс (код ниже) с методом, в который буду передавать DataGridView control и имя файла, с которого будет идти заполнение.   При нажатии на кнопку Start будет вызываться метод InitDataGridFromExcel.

class Filler
{
        static public void InitDataGridFromExcel(DataGridView dataGridView, string fileName)
        {
            if (!File.Exists(fileName))
            { 
                throw new Exception(string.Format("File {0} wasn't found.", fileName));
            }
            string connectionString = string.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source = {0};Extended Properties=Excel 8.0;", fileName);
            string query = "SELECT * FROM[Лист1$]";
            OleDbDataAdapter adapter = new OleDbDataAdapter(query, connectionString);
            DataTable dataTable = new DataTable();
            adapter.Fill(dataTable);
            dataGridView.DataSource = dataTable;
        }
}

Поскольку у меня русская версия офиса, то в запросе (string query) есть русское слово «Лист». В результате запуска программы и нажатия на кнопку Start видим следующие.

Подгрузив такой файл:

программа показала такое окошко:

Открытые вопросы.

1)      Пока я не разобрался, почему первый ряд из файла автоматически становится именами столбцов.

2)      После заполнения объекта  dataTable, он имеет 2 ряда, вместо трех. Самый первый ряд из файла, тот который стает именами столбцов, не входит в dataTable.Rows список.

 

P.S.
Мои исходники можно взять из attachments. 

Компании из статьи


Microsoft Украина


Сайт:
http://www.microsoft.com/ukr/ua/

Microsoft Украина Украинское подразделение компании Microsoft.

Ищите нас в интернетах!

Комментарии

Свежие вакансии