Naučit se SQL Naučit se SQL
Pouze tento týden až 80% sleva na SQL jazyky
Zamiluj si programování! Až 80 % bodů na prémiový obsah zdarma. 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í
+1 bodů
Ř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.