C# :: Aufgabe #263 :: Lösung #1

4 Lösungen Lösungen öffentlich
#263

Zelle aus Exceldatei auslesen

Anfänger - C# von Gustl - 12.06.2019 um 10:29 Uhr
Es solle eine Excel Datei eingelesen (XLSX) und dann ein bestimmter Inhalt einer Zelle wieder ausgegeben werden.

#1
vote_ok
von crazyfrien (80 Punkte) - 19.06.2019 um 16:00 Uhr
Quellcode ausblenden C#-Code
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

//Need to add the Microsoft Office XX.X Object Library at COM

namespace ReadExcel
{
    public partial class Form1 : Form
    {
        string filePath ="";

        Excel.Application app;
        Excel.Workbook workBook;
        Excel.Worksheet workSheet;
        string[,] tableContents;

        public Form1()
        {
            InitializeComponent();

            app = new Excel.Application();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Choose File via Dialog
            openFileDialog1.ShowDialog();
            filePath = openFileDialog1.FileName;
            textBox1.Text = filePath;

            //Read file
            workBook = app.Workbooks.Open(filePath);
            workSheet = workBook.Worksheets[1];

            //Show how many items are available
            int s=1, z = 1;
            while (workSheet.Cells[z,s].Value != null)
            {
                while (workSheet.Cells[z,s].Value != null)
                {
                    s++;

                }
                    z++;
            }
            s--;

            //Create array and write contents inside array
            tableContents = new string[s,z];
            for(int i=0;i<tableContents.GetLength(0);i++)
            {
                for(int j=0;j<tableContents.GetLength(1);j++)
                {
                    tableContents[i, j] = workSheet.Cells[j+1, i+1].Value;
                }
            }

            //Write to richtTextBox1
            richTextBox1.Clear();
            if (textBox2.Text != "" || textBox3.Text != "")
            {
                try
                {
                    richTextBox1.Text = tableContents[Convert.ToInt32(textBox2.Text)-1, Convert.ToInt32(textBox3.Text)-1];
                }
                catch(IndexOutOfRangeException ex)
                {
                    richTextBox1.Text = "Empty";
                }
                catch(Exception ex)
                {
                    richTextBox1.Text = ex.Message;
                }
            }
            else
            {
                for (int i = 0; i < tableContents.GetLength(1); i++)
                {
                    for (int j = 0; j < tableContents.GetLength(0); j++)
                    {
                        richTextBox1.Text += tableContents[j, i] + "\t";
                    }
                    richTextBox1.Text += "\n";
                }
            }
        }
    }
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben
1810088

Du scheinst einen AdBlocker zu nutzen. Ich würde mich freuen, wenn du ihn auf dieser Seite deaktivierst und dich davon überzeugst, dass die Werbung hier nicht störend ist.