C# und Excel

chriss_2oo4

Erfahrenes Mitglied
Hi,

ich benutze COM um Excel auszulesen, da ich mit OleDB komischer Weise den Inhalt von manchen Zeilen nicht bekomme.

Da OleDB in Verbindung mit LINQ wesentlich kompfortabler ist, wäre es natürlich super wenn jemand mögliche Ursachen für solch ein Problem kennt.

Ich habe eine relativ umfrangreiche Tabelle, deren Spalten sowohl Zahlen als auch Buchstaben enthalten. Es werden keine Formeln oder Grafiken verwendet.

Aber nun zu meinem Problem :D

bisher habe ich nur Code wie diesen hier gesehen:

Code:
// loop through 10 rows of the spreadsheet 
for (int i = 1; i <= 10; i++)
{
Excel.Range range = worksheet.get_Range("A"+i.ToString(), "J" + i.ToString());
...
}

Allerdings muss ich dazu wissen, dass sich alle Informationen innerhalb den Zeilen 1-10 und innerhalb der Spalten A-J befinden.
Fügt ein Benutzer nun neue Zeilen oder Spalten zum Arbeitsblatt hinzu, werden diese niemals von meinem Programm erreicht.

Code:
....
while (true)
 {
   range = (Range)ws.get_Range(rangeStart, rangeStop);

   if (range.Value2 == null)
   {
      break;
    }
   else
    {
       ...
    }
 }


Das funktioniert ja eigentlich auch, aber wenn eine Spalte oder Zeile ausgelassen wird, gehts auch nicht mehr.

Jetzt ist die Frage, sind die Grenzen der aktuell geladenen XLS Datei nicht irgendwo hinterlegt, so dass ich ganz einfach und praktisch mit einer for-Schleife durch alle Zellen mit Informationen navigieren kann?


Beste Grüße
Chriss
 
Beim SpreadsheetGear gibts sowas wie UsedRange.
Ev. gibt sowas ja auch da.

(Neuer Rechner hab noch kein VS drauf)
 
Zurück