2016-06-30 6 views
1

Ich verwende Interop Excel dll, um die nicht leere Zelle von jeder Zeile einer Excel-Datei zu erhalten.Ich brauche die letzte nicht leere Zelle einer bestimmten Zeile aus Excel-Datei mit InteropExcel

Hier ist der Screenshot, was ich suche.

enter image description here

Cany jemand die C# -Code schlägt die Last nicht leere Zelle Reihe

ich verwende Code unten zu bekommen. Ich bekomme die letzte Zelle der Zeile, aber ich brauche die letzte nicht leere Zelle einer bestimmten Zeile.

 Microsoft.Office.Interop.Excel.Application excel = new Application(); 
     Microsoft.Office.Interop.Excel.Workbook workBook = 
      excel.Workbooks.Open(filename); 
     Microsoft.Office.Interop.Excel.Worksheet sheet = workBook.Worksheets["Sample"]; 
     Microsoft.Office.Interop.Excel.Range range = sheet.UsedRange; 
     Microsoft.Office.Interop.Excel.Range last = sheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, Type.Missing); 
     //Microsoft.Office.Interop.Excel.Range cellRange = sheet.Range["3:3", last]; 
     //int lastCell = cellRange.Columns.Count; 
     int lastUsedRow = last.Row; 
     int lastUsedColumn = last.Column; 
     long lastColumn = sheet.Cells[2, 2].End(Microsoft.Office.Interop.Excel.XlDirection.xlToLeft).Column; 

Vielen Dank im Voraus

+0

Es gibt Excel-Funktionen, die in Excel verwendet werden können, um dies zu erreichen (z. B. den Wert der letzten Zelle in einer Zeile abrufen oder die Adresse der letzten Zelle in einer Zeile abrufen). Überprüfen Sie, ob Sie Zugriff auf diese Funktion in C# haben. – FDavidov

+0

Ich habe FDavidov nicht verstanden. Kannst du bitte kurz beschreiben. Also, das werde ich umsetzen. – vsreekanth

+0

Haben Sie jemals einen Weg gefunden, dies zu tun? Ich bin heute mit demselben Problem konfrontiert – hellyale

Antwort

-1

Angenommen, Sie den Wert der letzten nicht leeren Zelle in Zeile 2, wobei Werte erscheinen zwischen den Spalten „A“ und „AY“ erhalten möchten. Dann würden Sie die Excel-Formel verwenden:

=LOOKUP(2,1/(A2:Y2<>""),A2:Y2) 

Wenn Sie den Zugriff auf diese Tabelle Formel aus C# (ich bin mir ziemlich sicher, dass ein Äquivalent für Visual Studio gibt es), dann könnte man es verwenden, und lösen Sie Ihre Problem.

+0

Ich brauche es durch C# nicht von Excel. Gibt es einen Code, um die letzte nicht leere Zelle aus jeder Zeile zu erhalten? – vsreekanth

+0

Ich schlage vor, Sie googlen für das Äquivalent der Tabellenkalkulationsfunktion 'LOOKUP' in Visual Studio. – FDavidov

Verwandte Themen