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