如何使用C#从Excel工作表中读取键值对?

时间:2019-04-27 12:20:27

标签: c# excel

我是C#的新手。我已经使用下面的代码从Excel读取数据,但是我需要修改它来读取键值对的帮助。

style

1 个答案:

答案 0 :(得分:1)

这里是一个例子;假定您有一个using子句。

using Excel = Microsoft.Office.Interop.Excel;

..并准备访问工作表:

Excel.Application xl = new Excel.Application();
xl.Workbooks.Open(filename);
Excel.Worksheet ws = xl.Workbooks[1].Worksheets[1];  // pick your sheet!
int keyColum = 3;

现在您可以抓取Range中的Cells

Excel.Range keyRange= ws.Range["C3:C53"];

..或整列:

Excel.Range keyRange= ws.Range["C:C"];

搜索所有出现的搜索字符串:

Excel.Range keysFound = keyRange.Find(textBox1.Text);

然后您可以像这样访问找到的单元格范围:

string msg1 = keysFound.Count + " records found.";
string msg2 = "1st in row " + keysFound.Row;
string msg3 = "value from next column is " 
            +  ws.Cells[keysFound.Row + 1, keyColum + 1].value;

注释:

  • 在c#中,索引从0开始,但是在excel中,索引不从0开始(因此[keysFound.Row + 1,
  • 我的值列在键的右边。最好使用命名索引!
  • 如果未找到任何内容,keysFound将是null! (添加支票!)
  • 由于要匹配整个键,因此您需要进行精确搜索:

    Excel.Range keysFound = keyRange.Find(textBox1.Text, LookAt: Excel.XlLookAt.xlWhole);


我仍然认为,获取所有数据并将其填充到Dictionary中将是最干净,最快的解决方案,除非那只需要进行一次查找即可。