C# Auf Zellen einer Exceltabelle zugreifen, wie geht das?

... komplette Frage anzeigen

2 Antworten

Das Beispiel von "KillerGoldFish" ist auf Weise des EarlyBindings aufgebaut. Im Gegensatz zum LateBinding ist das EarlyBinding sehr abhängig von den implementierten Objektversionen, also von der Version des Excel. Hast du alles auf Version Excel 2010 aufgebaut und möchtest dann auch mal eine Datei der neuesten Excel-Version verwenden, wird das nicht funktionierten. Anders ist das beim LateBinding. Die Nachteile dieser Vorteile ist das erschwerte und undurchsichtigere Entwickeln. Während beim EarlyBinding sogar kontextabhängige Vorschläge gemacht werden, wenn ein Punkt hinter einem Objekt eingefügt wird, tappst man beim LateBinding komplett im Dunkeln und sieht erst beim Ausführen, ob und wo ein Fehler liegt.

Hier ein paar Informationen zu den zwei möglichen Entwicklungsweisen: http://word.mvps.org/faqs/interdev/earlyvslatebinding.htm

Antwort bewerten Vielen Dank für Deine Bewertung

Hab dir da mal was vorbereitet:

using System;
using System.IO;
using System.Windows.Forms;


using Microsoft.Office.Core; //Verwis auf "Microsoft.Office.Interop.Excel"
using Microsoft.Office.Interop.Excel; //Verwis auf "Office"


namespace ExcelTest {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e) {
            FileInfo ExelFile = new FileInfo("Addressen.xls");

            Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
            Workbooks wbks = app.Workbooks;
            Workbook wb = wbks.Add(ExelFile.FullName);
            Sheets shs = wb.Sheets;
            _Worksheet _wsh = (_Worksheet)shs["Tabelle1"];
            int i = 1;
            string anrede = "";

            while ((anrede = _wsh.Cells[i, "A"].Value) != null) {
                string nachname = _wsh.Cells[i, 4].Value;
                WriteLine("Hallo " + anrede + " " + nachname);
                i++;
            }
        }

        void WriteLine(string text) {
            textBox1.Text += text + "\\\\r\\\\n";
        }
    }
}

Das komplette Projekt kannst du hier runterladen:

http://hidemyass.com/files/PjMgq/

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?