C#:使用Excel.interop获取单元格的值

时间:2011-04-19 10:06:48

标签: c# excel

我希望使用C#中的软件从excel文件中获取单元格的值;不是文本,因为文本取决于列的大小,我不能自己更改,软件不应该受到干扰。所以我的选择是获得价值。

我将我的单元格作为1:1的范围,因此我有一个Range对象,但语言无法识别Value字段和Value2字段。我尝试使用get_Value(),但它需要一个参数,我不知道要放入什么,我没有找到有关它的文档。这是我的代码(从循环中提取):

  if((string)(ws_Varsheet.get_Range("L" + iIndex, "L" + iIndex).Text) != "")
  {

    rng_ResolutionCell = ws_Varsheet.get_Range("L" + iIndex, "L" + iIndex);   
    float iResolution;
    rng_ResolutionCell.Cells.get_Value(&iResolution); //what to do here?
    str_Resolution = ((string)iResolution.toString()).Replace(",",".");
    str_Resolution = str_Resolution.Replace(" ","");
     mObj.Str_Resolution="1";
  }
你可以帮帮我吗?先谢谢。

3 个答案:

答案 0 :(得分:7)

我经常发现代码比所有需要的代码复杂得多。基本上读单元格就像:

Xl.Range rng = sheet.Cells[row, column] as Xl.Range;
return rng.Value2;

答案 1 :(得分:2)

this post on MSDN看起来你会想要这样的东西:

var cellRangeValue = rng_ResolutionCell.get_Value(System.Type.Missing);

答案 2 :(得分:-1)

此外:

newWS = (Microsoft.Office.Interop.Excel.Worksheet)newWB.Worksheets[2];
newWS.Select();
string ExcelCellContent = (string)newWS.Cells[2, 1].Value2;

用法:

if((string)(ws_Varsheet.Cells[x, y].Value2 != "")
{
   // process
}