0
我一直在研究一個在C#中讀取Excel文件的項目。有時我不得不刪除Excel表格底部的最後幾行,但是當我在代碼中進行行計數時,它仍然認爲這些行存在。如果我將鼠標懸停在整行上,右鍵單擊並點擊刪除,這將解決問題,但我正在處理多行電子表格,其中有很多行,用戶已經編輯了該行並僅使用了刪除鍵。有其他人有過這個問題嗎?如果是這樣,是否有解決這個問題?使用C的Excel問題#
我一直在研究一個在C#中讀取Excel文件的項目。有時我不得不刪除Excel表格底部的最後幾行,但是當我在代碼中進行行計數時,它仍然認爲這些行存在。如果我將鼠標懸停在整行上,右鍵單擊並點擊刪除,這將解決問題,但我正在處理多行電子表格,其中有很多行,用戶已經編輯了該行並僅使用了刪除鍵。有其他人有過這個問題嗎?如果是這樣,是否有解決這個問題?使用C的Excel問題#
問題是,當excel查找「最後一行」時,它也包含格式化的行。刪除行時,內容將被刪除,但格式仍然存在。我目前正在使用我的項目中下面的代碼:
public int LastRow()
{
// This version also returns cells with formatting
// return (int)worksheet.Cells.SpecialCells(Microsoft.Office.Interop.Excel.XlCellType.xlCellTypeLastCell, System.Reflection.Missing.Value).Row;
// This version seems to also not work but dont know why
// return (int)worksheet.UsedRange.Rows.Count;
// This is the most reliable so far
return (int)worksheet.Cells.Find("*", worksheet.Cells[1, 1], XlFindLookIn.xlValues, XlLookAt.xlWhole, XlSearchOrder.xlByRows, XlSearchDirection.xlPrevious, missing, missing, missing).Row;
}
基本上我專門找到最後一排沒有細胞的任何內容(1,1)。
這裏的工作表是什麼意思?工作表的實際名稱?你的部分代碼給我錯誤 – Juan
工作表是Microsoft.Office.Interop.Excel.Worksheet。你必須創建你自己的應用程序並打開你自己的工作簿,從中你可以獲得你的工作表(我相信你已經知道如何,因爲你已經閱讀了C#中的excel)。然後使用工作表訪問Worksheet.Cells.Find函數。 – Jake