使用ExcelDNA或NetOffice插入Excel行/列

时间:2015-03-14 15:50:52

标签: c# excel excel-dna netoffice

我正在使用ExcelDNA来设置和获取单元格值。我可以获取并设置单元格值

var ref = ExcelReference(2, 2);
var val = ref.GetValue();
ref.SetValue(42);

有没有办法通过向右或向下移动条目来插入整行或列?我想要的行为与用户右键单击列并且所有条目都向右移动时的行为相同。如有必要,解决方案可以使用NetOffice。

2 个答案:

答案 0 :(得分:1)

我建议使用COM对象模型,代码与VBA类似,用于同一任务。

通过调用Application,您可以获得根ExcelDnaUtil.Application对象。生成的对象将为Microsoft.Office.Interop.Excel.Application类型,可用于选择列行,然后调用app.Selection.Insert()以插入新行或列。

也应该可以使用C API,但这不太可能更容易或更快。

答案 1 :(得分:1)

我想补充一点,NetOffice不支持Range对象的EntireRowEntireColumn方法,这对插入或删除完整行很有用。作为一种变通方法,可以通过Range(rowNoStart + ":" + rowNoEnd)来查找完整行来替换行。

对于列,可以写Range(GetExcelColumnName(colStart) + ":" + GetExcelColumnName(colEnd)),其中GetExcelColumnName是来自this former SO post的函数。