Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Vadym Stižko:18.7.2018 13:08

Dobrý den,
Jsem začátečník v C#.

Mám v excelu data. Chci vybrat celý sloupec a uložit si ho do proměnné. Problém nastává když mám v sloupci 1 buňku prázdnou a za ní další data. Nevím jak na to.

Budu rád za každou radu.

Zkusil jsem:

     Application app = new Application();
     Workbook workbook = null;
     Worksheet worksheet = null;
     Range range = null;
     app.Visible = true;
     app.ScreenUpdating = true;
     app.DisplayAlerts = true;
     workbook = app.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);
     worksheet = (Worksheet)workbook.Worksheets[1];
     range = worksheet.get_Range("N1",Missing.Value);    //Tento příkaz by to chtělo asi změnit, ale nevím jak
     range = range.get_End(XlDirection.xlDown);
     string downAdress = range.get_Address(false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing);
     range = worksheet.get_Range("N1", downAdress);
     object[,] values = (object[,])range.Value2;
     Console.WriteLine();
     for (int i = 1; i <= values.GetLength(0); i++)
     {
         Console.Write("{0} ", i);
         for (int j = 1; j <= values.GetLength(1); j++)
         {
             Console.Write("{0} ", values[i, j]);
         }
         Console.WriteLine();
     }
     range = null;
     worksheet = null;
     if (workbook != null)
         workbook.Close(false, Missing.Value, Missing.Value);
     workbook = null;
     if (app != null)
         app.Quit();
     app = null;

Chci docílit: Jestli jsem to dobře pochopil, tak bych potřeboval range celého sloupce i když jsou některé buňky prázdné.

 
Odpovědět
18.7.2018 13:08
Avatar
Ghst
Člen
Avatar
Ghst:19.7.2018 12:16

Tohle by mohlo pomoct

//...
        worksheet = (Worksheet)workbook.Worksheets[1];
     //range = worksheet.get_Range("N1",Missing.Value);    //Tento příkaz by to chtělo asi změnit, ale nevím jak
     //range = range.get_End(XlDirection.xlDown);
        range = worksheet.Cells[worksheet.Rows.Count, "N"].End( XlDirection.xlUp );
     string downAdress = range.get_Address(false, false, XlReferenceStyle.xlA1, Type.Missing, Type.Missing);
//...
Editováno 19.7.2018 12:17
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
19.7.2018 12:16
Avatar
Odpovídá na Ghst
Vadym Stižko:19.7.2018 12:23

Moc díky!

 
Nahoru Odpovědět
19.7.2018 12:23
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.