Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [C# Win Forms] Da Foglio Excel A dataGridView
Forum - C# / VB.NET - [C# Win Forms] Da Foglio Excel A dataGridView

Avatar
carmine (Member)
Pro


Messaggi: 168
Iscritto: 20/04/2010

Segnala al moderatore
Postato alle 19:30
Martedì, 29/03/2011
Salve Ragazzi!

Ho bisogno di inserire i dati di un foglio di Excel in una dataGridView ma purtroppo mi da un errore che non riesco a capire ecco il codice e l'errore:
Codice sorgente - presumibilmente C#

  1. private void readFromExcelFile()
  2.         {
  3.             string path = @"c:/voti.xls";
  4.             ApplicationClass excelApp = new ApplicationClass();
  5.             Workbook myWorkBook;
  6.             Worksheet mySheet;
  7.             Range dataRange=null;
  8.             int i = 0, j = 0;
  9.             try
  10.             {
  11.                 //Apro il foglio
  12.                 myWorkBook = excelApp.Workbooks.Open(path, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
  13.                 mySheet = (Worksheet)myWorkBook.Sheets["voti"]; //Recupero il foglio
  14.  
  15.                 i = 0; //Indici della Grid
  16.                 j = 0;
  17.                // Grid.Rows.Add();
  18.                 int k = 3, h = 1;   //indici row e col excel, riga parte da 3 per mia esigenza
  19.                 for (i = 0; i < mySheet.Rows.Count; i++)    //ciclo righe
  20.                 {
  21.                     h = 1;   //Riazzero colonna excel
  22.                     for (j = 0; j < mySheet.Columns.Count; j++)
  23.                     {
  24.                         Grid.Columns.Add(j.ToString(), j.ToString());  //Aggiungo colonna alla grid
  25.                         dataRange = (Range)mySheet.Cells[k, h];    //recupero la cella excel
  26.                         Grid[i, j].Value = dataRange.Value2.ToString();  // la metto nella Grid
  27.                         h++;  //incremento colonna ecel
  28.                     }
  29.                    
  30.                     Grid.Rows.Add(); //aggiungo riga
  31.                     k++; //incremento righe excel
  32.                 }
  33.  
  34.             }
  35.             catch (Exception ex)
  36.             {
  37.                 excelApp.Quit();
  38.                 MessageBox.Show(ex.Message.ToString());
  39.             }
  40.             finally
  41.             {
  42.                 excelApp.Quit();
  43.             }
  44.         }


L'Errore è:

Codice sorgente - presumibilmente C# / VB.NET

  1. Indice non compreso nell'intervallo. Richiesto valore non negativo e minore della dimensione dell'insieme.
  2. Nome Parametro: Index



Help me Please, Thanks!!!


Computer Science
PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Up
1
Down
V
Segnala al moderatore
Postato alle 15:02
Mercoledì, 30/03/2011
Potevi almeno indicare dove si genera l'errore, dato che ci sono 3 punti del codice in cui accedi ad un elemento della collezione.
Suppongo che sia alla riga 25 o 26, dato che alla riga 13 non c'è un indice. Quindi ci sono due possibilità: o h e k assumono valori errati oppure j e i non si riferiscono ad una posizione nella tabella Grid (forse perché aggiungi solo colonne e non righe).
Per il resto, non è un problema che possiamo risolvere noi. Devi capire tu dove vai a sforare.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM