我希望使用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";
}
你可以帮帮我吗?先谢谢。
答案 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
}