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.Union
和Application.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)
没有多大意义。