Mittwoch, Januar 11, 2006

Mit C# Daten aus Excel lesen

Im folgenden Beispiel werden mit COM/Interop Daten aus Excel gelesen. Um dies zu ermöglichen, muss im Visual Studio 2005 Projekt vorgängig "Microsoft Excel 11.0 Object Library" aus COM den Referenzen hinzugefügt werden.

Das vorliegende Beispiel basiert auf einer leeren Form (Form1) mit einem Button (button1) und einem OpenFileDialog (openFileDialog1). Das Beispiel befindet sich vollständig innerhalb des Click Events des Buttons (button1_Click).

Das Beispiel liest den Bereich A1..B5 aus der ersten Tabelle einer beliebigen Excel Datei und überträgt den gesamten Bereich in den Array mit der Bezeichnung 'werte'.

 

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

 

// Microsoft Excel 11.0 Object Library aus COM

// muss zu den Referenzen hinzugefügt werden

using Microsoft.Office.Interop.Excel;

 

/// <summary>

/// Das vorliegende Beispiel basiert auf einer leeren Form (Form1) mit

/// einem Button (button1) und einem OpenFileDialog (openFileDialog1).

///

/// Das Beispiel befindet sich vollständig innerhalb des Click Events

/// des Buttons (button1_Click).

///

/// Das Beispiel liest den Bereich A1..B5 aus der ersten Tabelle eines

/// beliebigen Excel Datei und überträgt den gesamten Bereich in den

/// Array mit der Bezeichnung werte.

///

/// </summary>

namespace ExcelLeser {

    public partial class Form1 : Form {

        public Form1() {

            InitializeComponent();

        }

 

        private void button1_Click(object sender, EventArgs e) {

            this.openFileDialog1.FileName = "*.xls";

            if (this.openFileDialog1.ShowDialog() == DialogResult.OK) {

 

                // Die Excel Anwendung

                ApplicationClass xlApplication = new ApplicationClass();

 

                // Eine Referenz zum Workbook (dies ist die .XLS Datei)

                Workbook xlWorkbook = null;

 

                // Eine Referenz zum Worksheet (Arbeitsblatt)

                Worksheet xlWorksheet = null;

 

                // Einen Range (Bereich) mit den Daten

                Range xlRange = null;

 

                // Nachstehende Eigenschaften auf 'false' setzen

                // um die Anwendung zu beschleunigen.

                // Um den Vorgang sichtbar zu machen und Fehler

                // anzuzeigen, sind die Eigenschaften auf 'true'

                // zu setzen.

                xlApplication.Visible = false;

                xlApplication.ScreenUpdating = false;

                xlApplication.DisplayAlerts = false;

 

                string workbook = this.openFileDialog1.FileName;

 

                xlWorkbook = xlApplication.Workbooks.Open(

                    openFileDialog1.FileName, 0, true, 5,

                    "", "", true, XlPlatform.xlWindows, "\t",

                    false, false, 0, true, 0, false

                );

 

                // Wir nehmen das erste Arbeitsblatt

                xlWorksheet = (Worksheet)xlWorkbook.Worksheets[1];

 

                // Wir lesen den Bereich A1..B5 ein

                xlRange = xlWorksheet.get_Range("A1", "B5");

                Array werte = (Array) xlRange.Cells.Value2;

 

 

                // Range und Worksheet Objekte freigeben

                xlRange = null;

                xlWorksheet = null;

 

                // Falls noch offen, Excel Datei schliessen und

                // Workbook Objekt freigeben

                if (xlWorkbook != null)

                    xlWorkbook.Close(false, null, null);

                xlWorkbook = null;

 

 

                // Falls noch offen, Anwendung schliessen und

                // Application Objekt freigeben

                if (xlApplication != null)

                    xlApplication.Quit();

                xlApplication = null;

            }

        }

    }

}

Erstellt von Peter Gloor am 13:07  

0 Kommentare:

Kommentar veröffentlichen

Verweise auf diesen Beitrag:

Link erstellen

<< Home