C#Excel范围管理
我在处理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
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"