Wczytywanie danych z Excela w C#
Dodany: 13:31, poniedziałek, 23 sierpnia 2010
Kontynuacją artykułu związanego z zapisywaniem danych do Excela w C# jest jego przeciwieństwo, czyli wczytywanie danych z Excela do C#. Za pomocą wspomnianej we wczesniejszym artykule biblioteki pokaże sposób wczytywania danych do kontrolki DataGridView.
Do wczytywania danych z Excela użyję interfejs przygotowany w poprzednim artykule rozbudowany o elementy potrzebne do wczytywania danych. Do poprzedniego interfejsu dodam przycisk Button (nazwa: bWczytaj), który będzie niezbędny do obsługi wczytywania danych, kontrolke typu TextBox, do której będzie wpisywany adres ostatniej komórki pliku, który ma być wpisany, oraz pomocniczą kontrolkę Label. Całość powinna wyglądać jak na poniższym zrzucie ekranu.
Następnie dodam kod odpowiedzialny za obsługę zdarzenia naciśnięcia na przycisk Wczytaj.
{
else
{
MSExcel.Application excelApp;
MSExcel.Range excelProjectRange;
MSExcel.Workbook excelWorkbook;
MSExcel.Worksheet excelWorksheet;
System.Object misValue = System.Type.Missing;
excelApp = new MSExcel.Application();
excelApp.DisplayAlerts = false;
excelWorkbook = excelApp.Workbooks.Open(excelFileName, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
excelWorksheet = (MSExcel.Worksheet)excelWorkbook.Worksheets[1];
string startCell = "A1";
string endCell = tbKoniecDanych.Text;
excelProjectRange = excelWorksheet.get_Range(startCell, endCell);
Array projectCells = (Array)excelProjectRange.Cells.Value2;
dgvData.ColumnCount = excelProjectRange.Columns.Count;
dgvData.RowCount = excelProjectRange.Rows.Count - 1;
for (int i = 0; i < dgvData.ColumnCount; i++)
{
{
else dgvData[i, j - 1].Value = projectCells.GetValue(j + 1, i + 1);
excelApp.Quit();
Zadaniem tego kodu jest sprawdzenie, czy pole w którym powinien znajdować się adres komórki nie jest pusty. Jeżeli nie jest, to wykonywany jest kod wczytywania danych do DataGridView. Tak, jak we wczesniejszym przykładzie nazwy poszczególnych kolumn zostały uwzględnione w pierwszym wierszu każdej kolumny (komórka A1 dla kolumny 1, komórka B1 dla kolumny 2 itd...).
Jednak aby aplikacja ta mogła zostać wykorzystana, należy dodać jeszcze sporo kodu, chociażby do sprawdzania zawartości pola TextBox. Należy także pamiętać, że będzie ona działać tylko i wyłącznie na komputerze, na którym znajduje się zainstalowany Microsoft Excel.
W razie jakichkolwiek pytań, zapraszam do działu kontakt.



