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 verweisen auf diesen Beitrag
RSS-Feed