Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Excel Zelle auslesen und Wert in TextBox ausgeben ???
nicknet
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

Excel Zelle auslesen und Wert in TextBox ausgeben ???

beantworten | zitieren | melden

[FAQ] Office (Word, Excel, Outlook, ...) in eigenen Anwendungen verwenden Hallo @ all,

Habe folgendes Problem,...

if (worksheet.Cells[1, 2] == "")

{
  // egal mach nichts weil Zelle des Tabellenblattes ist leer
}
{
//ist nicht leer? dann Inhalt Convertieren in String nach TextBox.Sowiso
textBox2.Text = worksheet.Cells[1, 2].Value.ToString();
}

Kann jemand helfen? Weil so klappt es nicht.

lg nicknet

Oder gibt es eine Rutine die man anwenden kann, Weil ich ein paar hundert Zellen abfragen muss?
private Nachricht | Beiträge des Benutzers
Lennart
myCSharp.de - Member



Dabei seit:
Beiträge: 416
Herkunft: Bawü

beantworten | zitieren | melden

Lese die Daten in eine geeignete Datenstruktur (zb Dataset) ein und zeige sie dann in einem GridView und nicht in hunderten von Textboxen an.
"So klappt es nicht" ist übrigens ziemlich schwammig. Was klappt nicht? Was willst du erreichen?

edit:
Zitat von nicknet
Oder gibt es eine Rutine die man anwenden kann, Weil ich ein paar hundert Zellen abfragen muss?
Ich vermute eine Schleife ist das was du suchst.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Lennart am .
private Nachricht | Beiträge des Benutzers
user8744
myCSharp.de - Member



Dabei seit:
Beiträge: 1.150

beantworten | zitieren | melden

Zitat
Weil so klappt es nicht.

Was klappt denn nicht ???
Tritt eine Exception auf ?
private Nachricht | Beiträge des Benutzers
nicknet
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

beantworten | zitieren | melden

Hallo Sebastian und Lennart


Dieser Teil

textBox2.Text = worksheet.Cells[1, 2].Value.ToString();

trägt die Daten in die Textbox.
Aber nur so lange in der Zelle auch Daten sind, egal ob Text oder Ziffern.

Ist aber eine Zelle leer, bleibt das Programm an dieser hängen und arbeitet nicht weiter, Ohne Fehlermeldung!

Deshalb habe ich versucht eine if Schleife zu setzen.
an dieser scheitere ich gerade.

Zum Dataset, kenn mich damit nicht so aus.. bin schon neuling.

Das Programm erstellt und verwaltet eine bzw. mehrere Exceldatei/en , die Daten werden nach und nach vom User eingegeben wobei nicht jedes Feld Daten erhält.
Deshalb gibt es in Excel ab und an eine "Leerzelle".
Wenn das Programm aber die Datei öffnen und auslesen soll, benötige ich auch die Info das in dieser Zelle nichts eingegeben wurde.
private Nachricht | Beiträge des Benutzers
CyberHunter
myCSharp.de - Member



Dabei seit:
Beiträge: 131
Herkunft: Österreich

beantworten | zitieren | melden

versuch mal statt:


if (worksheet.Cells[1, 2] == "")
{}

dieses:


textBox2.Text = worksheet.Cells[1, 2].Value == null ? "-" : worksheet.Cells[1, 2].Value.ToString();

Gruss
CyberHunter
private Nachricht | Beiträge des Benutzers
user8744
myCSharp.de - Member



Dabei seit:
Beiträge: 1.150

beantworten | zitieren | melden

naja deine entscheidungsstruktur sieht auch etwas experimentell aus

ifworksheet.Cells[1, 2] == "")
{

}

{

}

Zitat
Ist aber eine Zelle leer, bleibt das Programm an dieser hängen und arbeitet nicht weiter, Ohne Fehlermeldung!

Bist du dir da sicher ? 8o
Wenn du willst häng dein Projekt hier einfach mal gepackt als Anhang mit dran.
private Nachricht | Beiträge des Benutzers
nicknet
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

beantworten | zitieren | melden

Danke das funzt,
Programm läuft stabil durch.
private Nachricht | Beiträge des Benutzers
nicknet
myCSharp.de - Member



Dabei seit:
Beiträge: 9

Themenstarter:

beantworten | zitieren | melden

Hi Sebastian, kann ja auch keine Fehlermeldung kommen,
habe sie ja kommentiert, ...
Das ist der Grundsource
der Später noch um bis zu tausend Eingaben erweitert wird.
leider immer nur von und nach Textboxen.


             OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.InitialDirectory = System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            openFileDialog1.Filter = "xls files (*.xls)|*.xls|All files (*.*)|*.*";
            openFileDialog1.FilterIndex = 1;
            openFileDialog1.Title = "Öffnen einer Datei ...";
            openFileDialog1.RestoreDirectory = true;

            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                try
                {
                    //if ((openFileDialog1.FileName) != null) 

                    //{

                    // Excel-Instanz erzeugen und sichtbar schalten
                    // Wenn codierung fertig auf false setzen!
                    Microsoft.Office.Interop.Excel.Application excel =
                       new Microsoft.Office.Interop.Excel.Application();
                    excel.Visible = true;


                    // Arbeitsmappe einlesen
                    string filename = Path.Combine(openFileDialog1.FileName);
                    Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(filename);


                    // Das erste Arbeitsblatt referenzieren Grunddaten einträge!
                    Microsoft.Office.Interop.Excel.Worksheet worksheet =
                       (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];


                    // Werte aus den Zellen zurücklesen und in den entsprechenden textBoxen ausgeben
                    //Werte werden als String gelesen und müssen als String übergeben werden!

                    //if (worksheet.Cells[1, 1] == "") { }
                    //{
                    textBoxlm1.Text = worksheet.Cells[1, 1].Value == null ? "-" : worksheet.Cells[1, 1].Value.ToString();
                    //}
                    //if (worksheet.Cells[1, 2] != "") 
                    //{
                    //    textBoxlm2.Text = "";
                    //}
                    //{
                    //    textBoxlm2.Text = worksheet.Cells[1, 2].Value.ToString();
                    //}
                    textBoxlm2.Text = worksheet.Cells[1, 2].Value == null ? "-" : worksheet.Cells[1, 2].Value.ToString(); 

                    textBoxlm3.Text = (worksheet.Cells[1, 3]).Value.ToString();
                    textBoxlm4.Text = (worksheet.Cells[1, 4]).Value.ToString();
                    textBoxlm5.Text = (worksheet.Cells[1, 5]).Value.ToString();
                    textBoxlm6.Text = (worksheet.Cells[1, 6]).Value.ToString();
                    textBoxlm7.Text = (worksheet.Cells[1, 7]).Value.ToString();
                    textBoxlm8.Text = (worksheet.Cells[1, 8]).Value.ToString();
                    textBoxlm9.Text = (worksheet.Cells[1, 9]).Value.ToString();
                    textBoxlm10.Text = (worksheet.Cells[1, 10]).Value.ToString();
                    textBoxlm11.Text = (worksheet.Cells[1, 11]).Value.ToString();
                    textBoxlm12.Text = (worksheet.Cells[1, 12]).Value.ToString();
                    textBoxlm13.Text = (worksheet.Cells[1, 13]).Value.ToString();
                    textBoxlm14.Text = (worksheet.Cells[1, 14]).Value.ToString();
                    textBoxlm116.Text = (worksheet.Cells[1, 15]).Value.ToString();

                    textBoxlm15.Text = (worksheet.Cells[2, 1]).Value.ToString();
                    textBoxlm16.Text = (worksheet.Cells[2, 2]).Value.ToString();
                    textBoxlm17.Text = (worksheet.Cells[2, 3]).Value.ToString();
                    textBoxlm18.Text = (worksheet.Cells[2, 4]).Value.ToString();
                    textBoxlm19.Text = (worksheet.Cells[2, 5]).Value.ToString();
                    textBoxlm20.Text = (worksheet.Cells[2, 6]).Value.ToString();
                    textBoxlm21.Text = (worksheet.Cells[2, 7]).Value.ToString();
                    textBoxlm22.Text = (worksheet.Cells[2, 8]).Value.ToString();
                    textBoxlm23.Text = (worksheet.Cells[2, 9]).Value.ToString();
                    textBoxlm24.Text = (worksheet.Cells[2, 10]).Value.ToString();
                    textBoxlm25.Text = (worksheet.Cells[2, 11]).Value.ToString();
                    textBoxlm26.Text = (worksheet.Cells[2, 12]).Value.ToString();
                    textBoxlm27.Text = (worksheet.Cells[2, 13]).Value.ToString();
                    textBoxlm108.Text = (worksheet.Cells[2, 14]).Value.ToString();
                    textBoxlm109.Text = (worksheet.Cells[2, 15]).Value.ToString();
                    textBoxlm110.Text = (worksheet.Cells[2, 16]).Value.ToString();
                    textBoxlm111.Text = (worksheet.Cells[2, 17]).Value.ToString();
                    textBoxlm112.Text = (worksheet.Cells[2, 18]).Value.ToString();
                    textBoxlm113.Text = (worksheet.Cells[2, 19]).Value.ToString();


                    textBoxlm30.Text = (worksheet.Cells[3, 1]).Value.ToString();
                    textBoxlm31.Text = (worksheet.Cells[3, 2]).Value.ToString();
                    textBoxlm32.Text = (worksheet.Cells[3, 3]).Value.ToString();
                    textBoxlm33.Text = (worksheet.Cells[3, 4]).Value.ToString();
                    textBoxlm34.Text = (worksheet.Cells[3, 5]).Value.ToString();
                    textBoxlm35.Text = (worksheet.Cells[3, 6]).Value.ToString();
                    textBoxlm36.Text = (worksheet.Cells[3, 7]).Value.ToString();
                    textBoxlm37.Text = (worksheet.Cells[3, 8]).Value.ToString();
                    textBoxlm38.Text = (worksheet.Cells[3, 9]).Value.ToString();
                    textBoxlm39.Text = (worksheet.Cells[3, 10]).Value.ToString();

                    textBoxlm40.Text = (worksheet.Cells[4, 1]).Value.ToString();
                    textBoxlm41.Text = (worksheet.Cells[4, 2]).Value.ToString();
                    textBoxlm42.Text = (worksheet.Cells[4, 3]).Value.ToString();
                    textBoxlm43.Text = (worksheet.Cells[4, 4]).Value.ToString();
                    textBoxlm44.Text = (worksheet.Cells[4, 5]).Value.ToString();
                    textBoxlm45.Text = (worksheet.Cells[4, 6]).Value.ToString();
                    textBoxlm46.Text = (worksheet.Cells[4, 7]).Value.ToString();
                    textBoxlm47.Text = (worksheet.Cells[4, 8]).Value.ToString();
                    textBoxlm48.Text = (worksheet.Cells[4, 9]).Value.ToString();
                    textBoxlm49.Text = (worksheet.Cells[4, 10]).Value.ToString();
                    textBoxlm50.Text = (worksheet.Cells[4, 11]).Value.ToString();
                    textBoxlm51.Text = (worksheet.Cells[4, 12]).Value.ToString();

                    //// Das zweite Arbeitsblatt referenzieren für Werte Rezeptdaten!
                    //Microsoft.Office.Interop.Excel.Worksheet worksheettwo =
                    //   (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[2];


                                        textBoxhd52.Text = (worksheet.Cells[11, 1]).Value.ToString();
                    textBoxhd90.Text = (worksheet.Cells[11, 2]).Value.ToString();
                    textBoxhd91.Text = (worksheet.Cells[11, 3]).Value.ToString();
                    textBoxhd92.Text = (worksheet.Cells[11, 4]).Value.ToString();
                    textBoxhd93.Text = (worksheet.Cells[11, 5]).Value.ToString();
                    textBoxhd94.Text = (worksheet.Cells[11, 6]).Value.ToString();
                    textBoxhd95.Text = (worksheet.Cells[11, 7]).Value.ToString();
                    textBoxhd96.Text = (worksheet.Cells[11, 8]).Value.ToString();
                    textBoxhd97.Text = (worksheet.Cells[11, 9]).Value.ToString();
                    textBoxhd98.Text = (worksheet.Cells[11, 10]).Value.ToString();
                    textBoxhd99.Text = (worksheet.Cells[11, 11]).Value.ToString();
                    textBoxhd100.Text = (worksheet.Cells[11, 12]).Value.ToString();
                    textBoxhd101.Text = (worksheet.Cells[11, 13]).Value.ToString();
                    textBoxhd102.Text = (worksheet.Cells[11, 14]).Value.ToString();
                    textBoxhd105.Text = (worksheet.Cells[11, 15]).Value.ToString();

                    textBoxhd77.Text = (worksheet.Cells[12, 1]).Value.ToString();
                    textBoxhd78.Text = (worksheet.Cells[12, 2]).Value.ToString();
                    textBoxhd79.Text = (worksheet.Cells[12, 3]).Value.ToString();
                    textBoxhd80.Text = (worksheet.Cells[12, 4]).Value.ToString();
                    textBoxhd81.Text = (worksheet.Cells[12, 5]).Value.ToString();
                    textBoxhd82.Text = (worksheet.Cells[12, 6]).Value.ToString();
                    textBoxhd83.Text = (worksheet.Cells[12, 7]).Value.ToString();
                    textBoxhd84.Text = (worksheet.Cells[12, 8]).Value.ToString();
                    textBoxhd85.Text = (worksheet.Cells[12, 9]).Value.ToString();
                    textBoxhd86.Text = (worksheet.Cells[12, 10]).Value.ToString();
                    textBoxhd87.Text = (worksheet.Cells[12, 11]).Value.ToString();
                    textBoxhd88.Text = (worksheet.Cells[12, 12]).Value.ToString();
                    textBoxhd89.Text = (worksheet.Cells[12, 13]).Value.ToString();
                    textBoxhd103.Text = (worksheet.Cells[12, 14]).Value.ToString();
                    textBoxhd104.Text = (worksheet.Cells[12, 15]).Value.ToString();
                    textBoxhd114.Text = (worksheet.Cells[12, 16]).Value.ToString();
                    textBoxhd115.Text = (worksheet.Cells[12, 17]).Value.ToString();

                    textBoxhd65.Text = (worksheet.Cells[13, 1]).Value.ToString();
                    textBoxhd66.Text = (worksheet.Cells[13, 2]).Value.ToString();
                    textBoxhd67.Text = (worksheet.Cells[13, 3]).Value.ToString();
                    textBoxhd68.Text = (worksheet.Cells[13, 4]).Value.ToString();
                    textBoxhd69.Text = (worksheet.Cells[13, 5]).Value.ToString();
                    textBoxhd70.Text = (worksheet.Cells[13, 6]).Value.ToString();
                    textBoxhd71.Text = (worksheet.Cells[13, 7]).Value.ToString();
                    textBoxhd72.Text = (worksheet.Cells[13, 8]).Value.ToString();
                    textBoxhd73.Text = (worksheet.Cells[13, 9]).Value.ToString();
                    textBoxhd74.Text = (worksheet.Cells[13, 10]).Value.ToString();

                    textBoxhd53.Text = (worksheet.Cells[14, 1]).Value.ToString();
                    textBoxhd54.Text = (worksheet.Cells[14, 2]).Value.ToString();
                    textBoxhd55.Text = (worksheet.Cells[14, 3]).Value.ToString();
                    textBoxhd56.Text = (worksheet.Cells[14, 4]).Value.ToString();
                    textBoxhd57.Text = (worksheet.Cells[14, 5]).Value.ToString();
                    textBoxhd58.Text = (worksheet.Cells[14, 6]).Value.ToString();
                    textBoxhd59.Text = (worksheet.Cells[14, 7]).Value.ToString();
                    textBoxhd60.Text = (worksheet.Cells[14, 8]).Value.ToString();
                    textBoxhd61.Text = (worksheet.Cells[14, 9]).Value.ToString();
                    textBoxhd62.Text = (worksheet.Cells[14, 10]).Value.ToString();
                    textBoxhd63.Text = (worksheet.Cells[14, 11]).Value.ToString();
                    textBoxhd64.Text = (worksheet.Cells[14, 12]).Value.ToString();

                    // Die Arbeitsmappe schließen, ohne diese zu speichern
                    workbook.Close(false);
                    excel.Quit();


                    //}
                }
                catch (Exception ex)
                {
                    //System.Windows.Forms.MessageBox.Show("Fehler: Kann Datei nicht lesen. Original Fehler: \n" + ex.Message);
                    //workbook.Close(false);
                    //excel.Quit();
                }

So sieht das Datei öffnen menue bislang aus.
Danke nochmal an alle die sich mit Gedanken gemacht haben.
private Nachricht | Beiträge des Benutzers
Lennart
myCSharp.de - Member



Dabei seit:
Beiträge: 416
Herkunft: Bawü

beantworten | zitieren | melden

Die Zeit die du damit verschwendest das alles von Hand anzupassen wäre besser damit verbracht dich über die Stichworte zu informieren die ich dir eingangs gab.
private Nachricht | Beiträge des Benutzers