Willkommen im Forum für Fachinformatiker Ausbilder und Azubis.

Sie betrachten unser Forum derzeit als Gast und haben damit nur eingeschränkten Zugriff zu Diskussionen und den weiteren Funktionen. Wenn Sie sich kostenlos registrieren, haben Sie folgende Vorteile:
  • Diese Meldung verschwindet :)
  • Teilnahme am Ausbilderchat
  • Neue Themen verfassen
  • mit anderen Mitgliedern privat kommunizieren
  • an Umfragen teilnehmen
  • weitere spezielle Funktionen genießen
Die Registrierung ist einfach, schnell und vor allem kostenlos, also melden Sie sich an! Falls Sie bei dem Registrierungsprozess oder beim Anmelden Probleme haben, kontaktieren Sie uns.

Zurück   Forum für Fachinformatiker Ausbilder und Azubis > Ausbildungsblöcke > Anwendungsentwickler

Brother Toner von tonermaus.de


Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 16.09.2008, 15:54   #1
shifty
Benutzer
 
Benutzerbild von shifty
 
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
shifty befindet sich auf einem aufstrebenden Ast
Standard C# letzte beschrieben Zeile einer Spalte ermitteln

Hallo zusammen,

folgendes Problem. Ich möchte die letzte beschrieben Zeile einer Excel Tabelle in C# ermitteln. In VB.NET sieht das ganz so aus:

Code:
letzteZeile= Range("A65536").End(xlUp).Row
oder so:

Code:
letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row + 1
Nun benötigte ich das ganz aber in C#...

Hier ein möglicher Lösungsansatz bei dem ich allerdings nicht weiter komme:

Code:
Excel.Worksheet xlsWs;
letzteZeile = xlsWs.Cells[xlsWs.Rows.Count, 1].End(Microsoft.Office.Interop.Excel.XlDirection.xlUp).Row;
Gruß
shifty
__________________
Die Seite für Fachinformatiker-Ausbilder:
http://www.fi-ausbilden.de

Ich: http://www.fi-ausbilden.de/forum/sho...&postcount=211


Support our troops!
shifty ist offline   Mit Zitat antworten
Alt 17.09.2008, 08:09   #2
Jann
Erfahrener Benutzer
 
Benutzerbild von Jann
 
Registriert seit: 19.03.2007
Ort: Rosenheim
Beiträge: 596
Jann befindet sich auf einem aufstrebenden Ast
Standard

Hallo shifty!

Welche Assembly benutzt du für den Zugriff auf Excel und woran scheiterst du?
__________________
Real stupidity beats artificial intelligence every time
Jann ist offline   Mit Zitat antworten
Alt 17.09.2008, 08:39   #3
shifty
Benutzer
 
Benutzerbild von shifty
 
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
shifty befindet sich auf einem aufstrebenden Ast
Standard

Für den Zugriff benutzte ich

Code:
using Excel = Microsoft.Office.Interop.Excel;
using Office = Microsoft.Office.Core;
using Microsoft.Office.Tools.Excel;
und daraus dann eben die entsprechenden Objekte Excel.Application und Excel.Worksheet.
Als Entwicklungsumgebung benutze ich das Visual Studio 2008 Prof, und das Projekt ist als Excel 2003 AddIn angelegt (VSTO).

Er wirft mir folgendes beim erstellen aus

Zitat:
Fehler 1 "object" enthält keine Definition für "End", und es konnte keine Erweiterungsmethode "End" gefunden werden, die ein erstes Argument vom Typ "object" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)
__________________
Die Seite für Fachinformatiker-Ausbilder:
http://www.fi-ausbilden.de

Ich: http://www.fi-ausbilden.de/forum/sho...&postcount=211


Support our troops!
shifty ist offline   Mit Zitat antworten
Alt 17.09.2008, 09:36   #4
Jann
Erfahrener Benutzer
 
Benutzerbild von Jann
 
Registriert seit: 19.03.2007
Ort: Rosenheim
Beiträge: 596
Jann befindet sich auf einem aufstrebenden Ast
Standard

Die Schnittstelle zu Office arbeitet leider größtenteils nicht typsicher.

Schau dir mal folgendes an, daraus solltest du die richtige Lösung für dich ableiten können:
Code:
Microsoft.Office.Tools.Excel.Worksheet sheet = new Excel.Worksheet();
sheet.Range[0, 0].get_End(Microsoft.Office.Interop.Excel.XlDirection.xlUp);
__________________
Real stupidity beats artificial intelligence every time
Jann ist offline   Mit Zitat antworten
Alt 18.09.2008, 08:43   #5
shifty
Benutzer
 
Benutzerbild von shifty
 
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
shifty befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Jann Beitrag anzeigen
Code:
Microsoft.Office.Tools.Excel.Worksheet sheet = new Excel.Worksheet();
Wenn ich mein Worksheet so wie du es vorgeschlagen hast deklariere, kann ich dem Objekt nicht das aktive Worksheet der Excel Application zuweisen. Ich muss es als

Code:
Microsoft.Office.Interop.Excel.Worksheet xlsWs;
deklarieren, sonst funktioniert es nicht.
__________________
Die Seite für Fachinformatiker-Ausbilder:
http://www.fi-ausbilden.de

Ich: http://www.fi-ausbilden.de/forum/sho...&postcount=211


Support our troops!
shifty ist offline   Mit Zitat antworten
Alt 18.09.2008, 11:09   #6
Jann
Erfahrener Benutzer
 
Benutzerbild von Jann
 
Registriert seit: 19.03.2007
Ort: Rosenheim
Beiträge: 596
Jann befindet sich auf einem aufstrebenden Ast
Standard

Aber die Ermittlung der letzten Zeile mit "get_end()" funktioniert?
__________________
Real stupidity beats artificial intelligence every time
Jann ist offline   Mit Zitat antworten
Alt 18.09.2008, 11:42   #7
shifty
Benutzer
 
Benutzerbild von shifty
 
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
shifty befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Jann Beitrag anzeigen
Aber die Ermittlung der letzten Zeile mit "get_end()" funktioniert?
Kann ich schlecht testen, wenn ich dem xlsWs kein Actives Worksheet zuordnen kann dessen letzte Zeile ich ermitteln könnte.
__________________
Die Seite für Fachinformatiker-Ausbilder:
http://www.fi-ausbilden.de

Ich: http://www.fi-ausbilden.de/forum/sho...&postcount=211


Support our troops!
shifty ist offline   Mit Zitat antworten
Alt 18.09.2008, 12:44   #8
Jann
Erfahrener Benutzer
 
Benutzerbild von Jann
 
Registriert seit: 19.03.2007
Ort: Rosenheim
Beiträge: 596
Jann befindet sich auf einem aufstrebenden Ast
Standard

Und warum deklarierst du es dann nicht einfach als Worksheet aus dem Interop-Namespace? Da - wie oben schon geschrieben - hier typunsicher gearbeitet wird, musst du natürlich casten

Code:
Excel.Worksheet sheet = this.Application.ActiveWorkbook.ActiveSheet as Excel.Worksheet;

string beginCell = "A" + sheet.Rows.Count;
string endCell = "B" + sheet.Rows.Count;
string txt = sheet.get_Range(beginCell, endCell).get_End(Excel.XlDirection.xlUp).Text.ToString();

System.Windows.Forms.MessageBox.Show(txt);
__________________
Real stupidity beats artificial intelligence every time
Jann ist offline   Mit Zitat antworten
Alt 18.09.2008, 13:02   #9
shifty
Benutzer
 
Benutzerbild von shifty
 
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
shifty befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von Jann Beitrag anzeigen
Und warum deklarierst du es dann nicht einfach als Worksheet aus dem Interop-Namespace?
das hatte ich doch am anfang gemacht, und da bin ich eben net mit weiter gekommen erinnerst dich?

aber ich werds mal eben so versuchen wie du es da hast
__________________
Die Seite für Fachinformatiker-Ausbilder:
http://www.fi-ausbilden.de

Ich: http://www.fi-ausbilden.de/forum/sho...&postcount=211


Support our troops!
shifty ist offline   Mit Zitat antworten
Alt 18.09.2008, 13:13   #10
shifty
Benutzer
 
Benutzerbild von shifty
 
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
shifty befindet sich auf einem aufstrebenden Ast
Standard

Okay so klappt es Danke

Code:
sheet.get_Range(beginCell, endCell).get_End(Excel.XlDirection.xlUp).Row;
__________________
Die Seite für Fachinformatiker-Ausbilder:
http://www.fi-ausbilden.de

Ich: http://www.fi-ausbilden.de/forum/sho...&postcount=211


Support our troops!
shifty ist offline   Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr.


Segeln lernen Fahrschule MPU positiv Garantie
Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Forum SEO von Zoints
vB Ad Management by =RedTyger=