1

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

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

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

4

2 回答 2

1

我建议为此使用 COM 对象模型,并且代码将类似于 VBA 用于相同的任务。

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

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

于 2015-03-14T17:09:31.973 回答
1

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

对于列,可以编写Range(GetExcelColumnName(colStart) + ":" + GetExcelColumnName(colEnd)),其中GetExcelColumnName前 SO 帖子中的一个函数。

于 2016-09-01T16:42:28.450 回答