Convert between ExcelReference and Range (and vise versa)

92 views
Skip to first unread message

Mad1523

unread,
Sep 5, 2011, 3:30:40 AM9/5/11
to Excel-DNA
I thought these extension methods might be helpful:

public static Excel.Range ToRange(this ExcelReference o)
{
return AddIn.XL.get_Range(XlCall.Excel(XlCall.xlfReftext, o,
true));
}

public static ExcelReference ToXlRef(this Excel.Range o)
{
// First area
ExcelReference xlref = new ExcelReference(o.Row - 1, o.Row - 1 +
o.Rows.Count - 1, o.Column - 1, o.Column - 1 + o.Columns.Count - 1,
o.Worksheet.Name);

// Additional areas
if (o.Areas.Count > 1)
{
for (int i = 2; i <= o.Areas.Count; i++)
{
xlref.AddReference(o.Areas[i].Row - 1, o.Areas[i].Row - 1
+ o.Areas[i].Rows.Count - 1, o.Areas[i].Column - 1, o.Areas[i].Column
- 1 + o.Areas[i].Columns.Count - 1);
}
}

return xlref;
}
Reply all
Reply to author
Forward
0 new messages