每種方法中上面的是Excel的行數,下麵的是Excel的列數。方法七:經過加工修改已經可以讀出來的是有效數據行 using Excel = Microsoft.Office.Interop.Excel;//Excel表讀寫 Excel.Application app = new Excel.Appl ...
每種方法中上面的是Excel的行數,下麵的是Excel的列數。方法七:經過加工修改已經可以讀出來的是有效數據行
using Excel = Microsoft.Office.Interop.Excel;//Excel表讀寫
Excel.Application app = new Excel.Application();
object omissing = System.Reflection.Missing.Value;
Excel.Workbook workbook = app.Workbooks.Open(excleItem.FullName, omissing, omissing, omissing, omissing, omissing, omissing, omissing, omissing, omissing, omissing, omissing, omissing, omissing, omissing);
Excel.Sheets sheets = workbook.Worksheets;//讀取Excel表格的標簽頁
Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(1);//讀取第一張表
方法1:
worksheet.UsedRange.Rows.Count
worksheet.UsedRange.Columns.Count
缺點:有時可能會比實際數大一些,原因是如果你把最後幾行(列)數據清除後(非整行或整列刪除),用這個命令仍返回未清除前的值。就是說現在雖然是空的,但是你曾經用過也算你的。
方法2:
worksheet.Range(“A65535″).End(xlUp).Row
worksheet.Range(“IV1″).End(xlToLeft).Column
可以簡寫為:
worksheet.[A65536].End(xlUp).Row
worksheet.[IV1].End(xlToLeft).Column
缺點:只能計算出一列(行)的最後一個單元格所在的行(列)數。本例是只返回A列最後一個單元格所占的行數。
方法3:
worksheet.Cells.SpecialCells(xlCellTypeLastCell).Row
worksheet.Cells.SpecialCells(xlCellTypeLastCell).Column
缺點:在工作表進行對刪除或清除操作時也會變得比實際情況大。
方法4:
worksheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
worksheet.UsedRange.SpecialCells(xlCellTypeLastCell).Column
缺點:在工作表進行對刪除或清除操作時也會變得比實際情況大。
方法5:
worksheet.CountA(ActiveSheet.Range(“A:A”))
worksheet .CountA(ActiveSheet.Range(“1:1″))
只能統計一列(行)的實際使用情況,得到的不一定是最後一行(列)的位置。方法2的數值比此方法大時,說明在A列的數據間有空白未填寫的單元格。
方法6:
worksheet.Cells.Find(What:=”*”, After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
worksheet.Cells.Find(What:=”*”, After:=[A1], SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
效果同方法2
方法7:
worksheet.UsedRange.CurrentRegion.Rows.Count
worksheet.UsedRange.CurrentRegion.Columns.Count
缺點:CurrentRegion 所在位置的活動區域,若有空行或者空列,則空行或空列後面的無法獲取到