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

Dienstag, Januar 03, 2006

Task-Manager minimiert im Autostart starten (Windows XP)

Lange Zeit hatte ich den Task-Manager so im Autostart, dass dieser bereits nach dem Start rechts unten minimiert angezeigt wurde. Seit meinem Wechsel auf Windows XP funktioniert dies nicht mehr. Obwohl ich im Task-Manager die Optionen "Nach Programmstart minimieren" und "Ausblenden wenn minimiert" angeklickt habe, erscheint der Task-Manager nach dem Start im Autostart in der zuletzt eingestellten Standardgrösse.

Heute habe ich endlich herausgefunden, wie ich das beheben kann:

1. Auf dem Desktop, rechte Maustaste, Neu => Verknüpfung.
2. Im Dialog "Verknüpfung erstellen" taskmgr.exe eingeben. "Weiter" klicken.
3. Im Dialog "Programmbezeichnung eingeben" Task-Manager eingeben. "Fertig stellen"klicken.
4. Auf der neu erstellten Verknüpfung rechte Maustaste klicken und "Eigenschaften" wählen.
5. Unter "Ausführen" die Option "Minimiert" auswählen und auf "Übernehmen" klicken.
6. Zuletzt die Verknüpfung in den Autostart Ordner verschieben (unter Start, Programme, Autostart).

Erstellt von Peter Gloor am 13:58 | 0 Kommentare verweisen auf diesen Beitrag