2017-11-18 3 views
0

を検索することなく、名前ボックスでのkeywrodを使用してExcelのセルを見つける:、私はその行と列の数は、C#で次のコードを好き使用してExcelのセルを見つけることができ

var option_cell = xlRange.Cells[row_counter, column_counter]; 

また、ユニークな名前があります名前欄に書かれているExcelの各セルのために:

Excel Name Box

は今の質問は、このような私は、その行と列の数を(使用して何をしたかのように私はC#で、その名前を使用して細胞を得ることができる方法です好ましくはMicrosoft.Office.Interop.Excel;の提案)?

答えて

0

私は、次のようなget_Range機能を使って答えを見つけました:

Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; 
string key = "Keyword";   
var xlRng = xlWorksheet.get_Range(key, key); 
var value = xlRng.Value.ToString(); 

それとも、セルのテキストを取得したい場合、あなたは次のコードを使用してすることができます

Excel._Worksheet xlWorksheet = xlWorkbook.Sheets[1]; 
string key = "Keyword";   
var xlRng = xlWorksheet.get_Range(key, key); 
var cell = xlRng.Cells[1,1]; 
var value = cell.Text; 

が、しこの解決策の問題は、キーワードを見つけるためにシート番号を知っている必要があり、Excelファイル全体でセルを見つけることができないということです。この問題を解決するために、すべてのシートを検索してキーワードを見つけました:

private string get_cell_text_by_keyword(Excel.Workbook xlWorkbook, string keyword) 
{ 
     foreach(Excel._Worksheet sheet in xlWorkbook.Sheets) 
     { 
      try 
      { 
       var xlRng = sheet.get_Range(keyword, keyword); 
       var cell = xlRng.Cells[1, 1]; 
       return cell.Text; 
      } 
      catch (Exception exp) 
      { 
      } 
     } 
     throw new Exception("this keyword '" + keyword + "' was not found"); 
} 
関連する問題