Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#Excel范围管理_C#_Excel_Excel Interop - Fatal编程技术网

C#Excel范围管理

C#Excel范围管理,c#,excel,excel-interop,C#,Excel,Excel Interop,我在处理C#应用程序中的excel文件 我想知道为什么这个代码不起作用: var value1 = ws.Range[ws.Cells[7,4]].Value; 目前,我发现这很好: int i = 7; var value1 = ws.Range["D" + i.ToString()].Value; 由于无法将单个单元格()属性传递给范围(),因此需要使用单元格()的两个参数对其进行设置: 或(使用“单元格”属性): 试试这个,我希望这对你有帮助 using Excel = Microso

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

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

var value1 = ws.Range[ws.Cells[7,4]].Value;
目前,我发现这很好:

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

由于无法将单个
单元格()
属性传递给
范围()
,因此需要使用
单元格()
的两个参数对其进行设置:

或(使用“单元格”属性):


试试这个,我希望这对你有帮助

using Excel = Microsoft.Office.Interop.Excel;
var value1 =(ws.Cells[7, 4] as Excel.Range).Value;

ws.Range[]
的第一个参数应采用A1样式的表示法

访问

ws.Cells[7,4]
您可以尝试以下代码:

var value1 = ws.Range["D7"].Value;
然后退房

这让我觉得理论上
.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)
没有多大意义。

实际上,您可以使用
Range
属性访问单个单元格或多个单元格。第二个参数是可选的。签出“A1”不是单元格属性“A1”在单元格中是
ws.Range[ws.Cells[1,1],ws.Cells[1,1]]
当传递字符串时,可以传递一个参数,但使用单元格的另一个重载需要2个参数swong,第二个参数是optional@S.Dav文件不是很精确。仅当第一个参数是范围名称(
“A1”
“A1:B2”
)时,第二个参数才是可选的。如果第一个参数是一个
单元格
引用,那么第二个参数是必需的。@S.Dav好的,随你的便。当您在C#或直接在VBA中正常工作时,
ws.Range[ws.Cells[7,4]]
,请回来告诉我们。感谢您的回答,为未来的访问者提供一个解决方案:
var value1=ws.Range[“D7”].Value
var value1 = ws.Range["D7"].Value;
operator    Example
Range       A1:A1
Union       A1,A1
Intersect   A1 A1
string address = ws.Range["offset(a1,1,2,3,4)"].Address[0, 0]; // "C2:F4"