Joe*_*win 10
我不是VSTO C#的大用户 - 我通常选择VBA.但是,以下一对功能可能对您有用.不确定他们是否可以更精简:
public string RangeAddress(Excel.Range rng)
{
return rng.get_AddressLocal(false, false, Excel.XlReferenceStyle.xlA1,
missing, missing);
}
public string CellAddress(Excel.Worksheet sht, int row, int col)
{
return RangeAddress(sht.Cells[row, col]);
}
Run Code Online (Sandbox Code Playgroud)
该RangeAddress会采取任何Excel范围和扔你回来的地址.如果你想要绝对样式(带有美元符号,例如$ C $ 3),那么你必须将get_AddressLocal调用的前两个参数更改为true,true.
要从行/列对中获取单元格地址,您可以使用CellAddress.它确实需要一张表来获取地址.但是,(Excel.Worksheet)ActiveSheet如果您不想提供工作表,则可以交换(这可能会也可能不会起作用,具体取决于您在VSTO会话中打开的内容).