2017-09-14 6 views
-1

私はExcelテーブルの行数を見つけるために下記のコードを使用していますが、希望の出力が得られていないので何か間違っているようです。解決策を提供してください。次のようにASP.NETを使用してExcelテーブルの行数を調べる方法は?

コードは次のとおりです。

using Excel = Microsoft.Office.Interop.Excel; 

Excel.Application xlApp  = null; 
Excel.Workbook wb   = null; 
Excel.Worksheet worksheet = null; 
int lastUsedRow    = 0; 
string srcFile    = @"Path to your XLSX file"; 

xlApp = new Excel.ApplicationClass(); 
xlApp.Visible = false; 
wb = xlApp.Workbooks.Open(srcFile, 
          0, false, 5, "", "", false, Excel.XlPlatform.xlWindows, "", 
          true, false, 0, true, false, false); 

worksheet = (Excel.Worksheet)wb.Worksheets[1]; 
Excel.Range range 

// Find the last real row 
lastUsedRow = worksheet.Cells.Find("*",System.Reflection.Missing.Value, 
          System.Reflection.Missing.Value, 
System.Reflection.Missing.Value, 
          Excel.XlSearchOrder.xlByRows,Excel.XlSearchDirection.xlPrevious, 
          false,System.Reflection.Missing.Value,System.Reflection.Missing.Value).Row; 


xlApp.Workbooks.Close(); 
xlApp.Quit(); 

Marshal.ReleaseComObject(worksheet); 
Marshal.ReleaseComObject(wb); 
Marshal.ReleaseComObject(xlApp); 
+0

コードが現在やっていますか?それはあなたが**ほしいものとはどのように違いますか? – mjwills

+0

ところで、すべてのCOMオブジェクトを正しく解放しているわけではありません。 https://ausdotnet.wordpress.com/2008/05/26/com-interop-principle-2-fear-the-period/およびhttps://ausdotnet.wordpress.com/2008/06/04/com- interop-principle-3-fear-the-hidden-period /と呼ばれる。 – mjwills

+0

私の要件は、xlsxファイルが入力として提供している行の数を取得しています。だから、私はそれを得ることができません。特定の時点の後にちょうど立ち往生しています。 –

答えて

0

あなたは試すことができます:

wb = xlApp.Workbooks.Open(srcFile, 
          Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, 
          Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); 

worksheet = (Excel.Worksheet)wb.Worksheets[1]; 
object[,] values = worksheet .UsedRange.Value2; 
int rowCount = values.GetLength(0); 
int colCount = values.GetLength(1); 
関連する問題