我正在处理C#应用程序中的excel文件。
我想知道为什么这段代码不起作用:
var value1 = ws.Range[ws.Cells[7,4]].Value;
现在我发现这很好用:
int i = 7;
var value1 = ws.Range["D" + i.ToString()].Value;
答案 0 :(得分:4)
由于您无法传递给Range()
单个Cells()
媒体资源,因此您需要使用Cells()
的2个参数进行设置:
var value1 = ws.Range[ws.Cells[7,4],ws.Cells[7,4]].Value;
或(严格使用Cells属性):
var value1 = ws.Cells[7,4].Value;
答案 1 :(得分:2)
答案 2 :(得分:1)
试试这个,我希望这会对你有所帮助
using Excel = Microsoft.Office.Interop.Excel;
var value1 =(ws.Cells[7, 4] as Excel.Range).Value;
答案 3 :(得分:1)
operator Example
Range A1:A1
Union A1,A1
Intersect A1 A1
这让我觉得理论上.Range
应该需要2 Range
个参数作为Application.Union
和Application.Intersect
,但幸运的是它几乎接受任何可用的字符串表达式Excel地址栏。例如:
string address = ws.Range["offset(a1,1,2,3,4)"].Address[0, 0]; // "C2:F4"
此外,ws.Cells[7,4]
为Range
,因此.Range(Range)
没有多大意义。