C# Excel 范围管理
C# Excel range management
我正在 C# 应用程序中处理 excel 文件。
我想知道为什么这段代码不起作用:
var value1 = ws.Range[ws.Cells[7,4]].Value;
现在我发现这工作正常:
int i = 7;
var value1 = ws.Range["D" + i.ToString()].Value;
因为您不能将单个 Cells()
属性 传递给 Range()
,所以您需要使用 Cells()
的 2 个参数来设置它:
var value1 = ws.Range[ws.Cells[7,4],ws.Cells[7,4]].Value;
或(严格使用单元格属性):
var value1 = ws.Cells[7,4].Value;
试试这个,希望对你有帮助
using Excel = Microsoft.Office.Interop.Excel;
var value1 =(ws.Cells[7, 4] as Excel.Range).Value;
ws.Range[]
的第一个参数应该是A1-style notation
访问
ws.Cells[7,4]
你可以试试这个代码:
var value1 = ws.Range["D7"].Value;
并查看 this。
operator Example
Range A1:A1
Union A1,A1
Intersect A1 A1
这让我觉得理论上 .Range
应该像 Application.Union
和 Application.Intersect
一样需要 2 个 Range
参数,但幸运的是它几乎接受任何字符串表达式在 Excel 地址栏中工作。例如:
string address = ws.Range["offset(a1,1,2,3,4)"].Address[0, 0]; // "C2:F4"
此外,ws.Cells[7,4]
是 Range
,所以 .Range(Range)
没有多大意义。
我正在 C# 应用程序中处理 excel 文件。
我想知道为什么这段代码不起作用:
var value1 = ws.Range[ws.Cells[7,4]].Value;
现在我发现这工作正常:
int i = 7;
var value1 = ws.Range["D" + i.ToString()].Value;
因为您不能将单个 Cells()
属性 传递给 Range()
,所以您需要使用 Cells()
的 2 个参数来设置它:
var value1 = ws.Range[ws.Cells[7,4],ws.Cells[7,4]].Value;
或(严格使用单元格属性):
var value1 = ws.Cells[7,4].Value;
试试这个,希望对你有帮助
using Excel = Microsoft.Office.Interop.Excel;
var value1 =(ws.Cells[7, 4] as Excel.Range).Value;
ws.Range[]
的第一个参数应该是A1-style notation
访问
ws.Cells[7,4]
你可以试试这个代码:
var value1 = ws.Range["D7"].Value;
并查看 this。
operator Example
Range A1:A1
Union A1,A1
Intersect A1 A1
这让我觉得理论上 .Range
应该像 Application.Union
和 Application.Intersect
一样需要 2 个 Range
参数,但幸运的是它几乎接受任何字符串表达式在 Excel 地址栏中工作。例如:
string address = ws.Range["offset(a1,1,2,3,4)"].Address[0, 0]; // "C2:F4"
此外,ws.Cells[7,4]
是 Range
,所以 .Range(Range)
没有多大意义。