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 in DataTable um im Gridview zu filtern
meekmill
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

Excel in DataTable um im Gridview zu filtern

beantworten | zitieren | melden

Hallo myCSharp Gemeinde,

Zu aller erst möchte ich sagen, dass ich ein kompletter Anfänger im Bereich Programmierung bin.
Ich benötige Hilfe bei meinem Code, der eine Excel Datei in ein Datagridview einliest. Dies klappt auch prima, jedoch will ich nun, die Daten in ein Datatable schreiben, diesen dann im DataGridview anzeigen lassen, um so mit dem Datatable verschiedene Filter auf die Einträge legen zu können, per Textbox.

  private void buttonDatagrid_Click(object sender, EventArgs e)
        {

            Excel.Application myApplication;
            Excel.Workbook myWorkbook;
            Excel.Worksheet myWorksheet;

            myApplication = null;

            myApplication = new Excel.Application();
            myApplication.Visible = false;
            myApplication.ScreenUpdating = false;

            myWorkbook = (Excel.Workbook)myApplication.Workbooks.Add(System.Reflection.Missing.Value);
            myWorksheet = (Excel.Worksheet)myWorkbook.ActiveSheet;

            this.openFileDialog1.FileName = "*.xls";
            if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
            {

                myWorkbook = myApplication.Workbooks.Open(openFileDialog1.FileName, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\n", false, false, 0, true);
                Excel.Sheets sheets = myWorkbook.Worksheets;
                Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);

                for (int i = 1; i ≤ 20; i++)
                {
                    Excel.Range myrange = worksheet.get_Range("A" + i.ToString(), "F" + i.ToString());
                    System.Array myvalues = (System.Array)myrange.Cells.Value;
                    string[] stringArray = ConvertToStringArray(myvalues);
                    dt.Rows.Add(stringArray);
                    dataGridView1.DataSource = dt;
                }
            }
        }

        /* Methode für das StringArray */

        public string[] ConvertToStringArray(System.Array values)
        {
            string[] thisArray = new string[values.Length];
            for (int i = 1; i ≤ values.Length; i++)
            {
                if (values.GetValue(1, i) == null)
                    thisArray[i - 1] = "";
                else
                    thisArray[i - 1] = (string)values.GetValue(1, i).ToString();
            }
            return thisArray;
        }

So weit bin ich nun und weiß absolut nicht, was ich hier ändern soll.

                for (int i = 1; i ≤ 20; i++)
                {
                    Excel.Range myrange = worksheet.get_Range("A" + i.ToString(), "F" + i.ToString());
                    System.Array myvalues = (System.Array)myrange.Cells.Value;
                    string[] stringArray = ConvertToStringArray(myvalues);
                    dt.Rows.Add(stringArray);
                    dataGridView1.DataSource = dt;

Vielen Danke im Vorraus.

MeekMill
private Nachricht | Beiträge des Benutzers
morbus85
myCSharp.de - Member



Dabei seit:
Beiträge: 84

beantworten | zitieren | melden

Hast du mal mit WPF versuchst. Unter WinForms, was mir auf die schnelle einfällt um ohne große Probleme ein Excel Sheet zu bearbeiten, wären die Janus Controls, jedoch sind die nur käuflich zu erwerben.
private Nachricht | Beiträge des Benutzers
meekmill
myCSharp.de - Member



Dabei seit:
Beiträge: 2

Themenstarter:

beantworten | zitieren | melden

Zunächst danke für die Antwort :). Mit WPF habe ich mich noch nicht ausseinander gesetzt, werde ich aber dann mal machen. Ich wollte gern zunächst kostenlos mit Visual Studio bzw. Csharp arbeiten, deswegen käme dies nicht in Frage.
private Nachricht | Beiträge des Benutzers