|
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:
|
|
|
|||||||
![]() |
|
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|
#1 |
|
Benutzer
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
![]() |
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
Code:
letzteZeile = Cells(Rows.Count, 1).End(xlUp).Row + 1 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; 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! |
|
|
|
|
|
#2 |
|
Erfahrener Benutzer
Registriert seit: 19.03.2007
Ort: Rosenheim
Beiträge: 596
![]() |
Hallo shifty!
Welche Assembly benutzt du für den Zugriff auf Excel und woran scheiterst du?
__________________
Real stupidity beats artificial intelligence every time |
|
|
|
|
|
#3 | |
|
Benutzer
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
![]() |
Für den Zugriff benutzte ich
Code:
using Excel = Microsoft.Office.Interop.Excel; using Office = Microsoft.Office.Core; using Microsoft.Office.Tools.Excel; 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:
__________________
Die Seite für Fachinformatiker-Ausbilder: http://www.fi-ausbilden.de Ich: http://www.fi-ausbilden.de/forum/sho...&postcount=211 Support our troops! |
|
|
|
|
|
|
#4 |
|
Erfahrener Benutzer
Registriert seit: 19.03.2007
Ort: Rosenheim
Beiträge: 596
![]() |
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 |
|
|
|
|
|
#5 |
|
Benutzer
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
![]() |
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;
__________________
Die Seite für Fachinformatiker-Ausbilder: http://www.fi-ausbilden.de Ich: http://www.fi-ausbilden.de/forum/sho...&postcount=211 Support our troops! |
|
|
|
|
|
#6 |
|
Erfahrener Benutzer
Registriert seit: 19.03.2007
Ort: Rosenheim
Beiträge: 596
![]() |
Aber die Ermittlung der letzten Zeile mit "get_end()" funktioniert?
__________________
Real stupidity beats artificial intelligence every time |
|
|
|
|
|
#7 |
|
Benutzer
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
![]() |
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! |
|
|
|
|
|
#8 |
|
Erfahrener Benutzer
Registriert seit: 19.03.2007
Ort: Rosenheim
Beiträge: 596
![]() |
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 |
|
|
|
|
|
#9 | |
|
Benutzer
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
![]() |
Zitat:
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! |
|
|
|
|
|
|
#10 |
|
Benutzer
Registriert seit: 12.09.2008
Ort: NRW
Beiträge: 51
![]() |
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! |
|
|
|