C#Excel范围pipe理

我正在处理C#应用程序中的excel文件。

我想知道为什么这个代码不起作用:

var value1 = ws.Range[ws.Cells[7,4]].Value; 

现在我发现这工作正常:

 int i = 7; var value1 = ws.Range["D" + i.ToString()].Value; 

因为你不能传递一个Range()单个Cells()属性,所以你需要使用Cells()两个参数来设置它:

 var value1 = ws.Range[ws.Cells[7,4],ws.Cells[7,4]].Value; 

或(使用严格的Cells属性):

 var value1 = ws.Cells[7,4].Value; 

ws.Range[]的第一个参数应该是A1风格的表示法

访问

 ws.Cells[7,4] 

你可以试试这个代码:

 var value1 = ws.Range["D7"].Value; 

看看这个 。

试试这个,我希望这会帮助你

 using Excel = Microsoft.Office.Interop.Excel; var value1 =(ws.Cells[7, 4] as Excel.Range).Value; 
 operator Example Range A1:A1 Union A1,A1 Intersect A1 A1 

这让我觉得在理论上.Range应该需要2个Range参数,如Application.UnionApplication.Intersect所做的,但幸运的是它接受几乎任何在Excel地址栏中工作的stringexpression式。 例如:

 string address = ws.Range["offset(a1,1,2,3,4)"].Address[0, 0]; // "C2:F4" 

另外, ws.Cells[7,4]Range.Range(Range)没有多大意义。