Announcement

Collapse
No announcement yet.

Excel via OLE Kopf/Fußzeile auslesen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Excel via OLE Kopf/Fußzeile auslesen

    Hallo,

    ich bin gerade dabei eine Exceldatei via OLE auszulesen.
    Ich komme zwar ohne Probleme an die Daten der WorkSheets via,

    Code:
    OleDbConnection connExcel;
    OleDbCommand cmdExcel;
    
    
    connExcel = new OleDbConnection();  
    cmdExcel  = new OleDbCommand();
    String myExelFile = path;
    connString = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + myExelFile + ";Extended Properties=\"Excel 12.0;HDR=YES\""; 
    connExcel.ConnectionString = connString;
    connExcel.Open();
    
    
    cmdExcel.Connection  = connExcel;
    cmdExcel.CommandText = "SELECT * FROM [Tabelle1$]";
    Jedoch ist Kopf- & Fußzeile ja ein ganz anderer Bereich.
    Nun habe ich feststellen können das man statt '[Tabelle1$]' auch einen eigenen Bereich angeben kann.

    Quelle: http://technet.microsoft.com/de-de/l.../ms141683.aspx

    Datenquellen. Die Quelle von Daten in einer Excel-Arbeitsmappe kann ein Arbeitsblatt sein, an das das $-Zeichen angefügt werden muss (z. B. Sheet1$), oder ein benannter Bereich (z. B. MyRange). In einer SQL-Anweisung muss der Name eines Arbeitsblattes mit Trennzeichen versehen sein (z. B. [Sheet1$]), um Syntaxfehler durch das $-Zeichen zu vermeiden. Der Abfrage-Generator fügt diese Trennzeichen automatisch hinzu. Wenn Sie ein Arbeitsblatt angeben, liest der Treiber den zusammenhängenden Zellenblock ab der ersten nicht leeren Zelle in der linken oberen Ecke des Arbeitsblattes oder Bereichs. Deshalb sind leere Zeilen in den Quelldaten oder eine leere Zeile zwischen Titel- oder Kopfzeilen und den Datenzeilen nicht zulässig.
    Die Frage die ich mir nun stelle ist, wie definiere ich solch einen Bereich?
    Definiere ich diesen in meinem Quellcode oder muss dieser bereits in der Excel Datei als sogenannter "Beannter Bereich" exisiteren, so dass ich diesen nur anspreche?

    Bin da etwas ratlos. Zusätzlich habe ich noch diesen Artikel gefunden wo es ähnlich aussieht wie ich mir das gerade vorstelle.

    http://support.microsoft.com/kb/257819

    Dort finde ich besonders diese Aussage interessant.

    Um einen benannten Zellbereich als Ihre Datenherkunft festzulegen, verwenden Sie einfach den definierten Namen. Beispiel:

    Code:
    strQuery = "SELECT * FROM MyRange"
    Nur wie definiere ich nun den entsprechenden Bereich?
    Eigentlich sollte ich ja davon ausgehen das dieser Bereich bereits vordefiniert.

    Der Link, http://msdn.microsoft.com/de-de/libr...ge(VS.80).aspx bestätigt mir das auch. Nur wie komme ich nun daran. Stehe da gerade etwas auf dem Schlauch.
Working...
X