我正在使用ExcelDNA设置和获取单元格值。我可以获取和设置单元格值
var ref = ExcelReference(2, 2);
var val = ref.GetValue();
ref.SetValue(42);
有没有办法通过向右或向下移动条目来插入整行或整列?我想要与用户右键单击列并且所有条目都向右移动时相同的行为。如有必要,解决方案可以使用 NetOffice。
我建议为此使用 COM 对象模型,并且代码将类似于 VBA 用于相同的任务。
Application
您可以通过调用来获取根对象ExcelDnaUtil.Application
。生成的对象将是类型Microsoft.Office.Interop.Excel.Application
,可用于选择列的行,然后调用app.Selection.Insert()
以插入新的行或列。
使用 C API 也应该是可能的,但这不太可能更容易或更快。
我想补充一点,NetOffice 不支持 Range 对象的EntireRow
和EntireColumn
方法,这对于插入或删除整行很有用。作为一种解决方法,可以通过用Range(rowNoStart + ":" + rowNoEnd)
.
对于列,可以编写Range(GetExcelColumnName(colStart) + ":" + GetExcelColumnName(colEnd))
,其中GetExcelColumnName
是前 SO 帖子中的一个函数。