Vánoční nadílka Vánoční nadílka
Až 80% zdarma! Předvánoční BLACK FRIDAY akce. Více informací

Diskuze: Excel

C# .NET .NET (C# a Visual Basic) Excel American English version English version

Aktivity (3)
Avatar
Vadym Stižko:18. července 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. července 13:08
Avatar
Ghst
Člen
Avatar
Ghst:19. července 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. července 12:17
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 19. července 12:16
Avatar
Odpovídá na Ghst
Vadym Stižko:19. července 12:23

Moc díky!

 
Nahoru Odpovědět 19. července 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.