操作range: 获取ActiveSheet单元格A2的值有以下等等方式: Excel.Worksheet sht = Application.ActiveSheet; var s = sht.get_Range("a2").Value; var s = sht.get_Range("a1").get_Offset(1,0).Value;
var s = Application.ActiveSheet.Cells(2,"a").Value;
var s = Application.ActiveSheet.Cells(2, 1).Value;
var s = Application.ActiveSheet.Range("a2").Value;
var s = Application.ActiveSheet.Cells(1, 1)(2,1).Value; 由于C#是强类型的语言,变量必须声明类型,但单元格中的值却有文本、数字等,所以这里的变量s定义为var(也可为object)。可见,单元格的表示与VBA中相比,只是要在前面加点东西就成了,其余都一样,如下面的选择单元格:
选择单元格(单个、多个、多列): Application.ActiveSheet.Cells[2, 3].Select(); Application.ActiveSheet.Range["d3:J8"].Select(); Application.ActiveSheet.Range["d:J"].Select();
复制粘贴单元格: Application.ActiveSheet.Range["d3:e3"].Copy(Application.ActiveSheet.Range["d6"]);
Application.ActiveSheet.Range["d3:e3"].Copy(); Application.ActiveSheet.Range["a6:b8"].Select(); Application.ActiveSheet.Paste(); Application.ActiveSheet.Range["h6:i6"].Select(); Application.ActiveSheet.Paste();
单元格区域写进数组、数组写回单元格 var ar = Application.ActiveSheet.Range("d3:e3").Value; 或object[,] ar = Application.ActiveSheet.get_Range("d3:e3").Value; Application.ActiveSheet.get_Range("d5:e5").Value =ar;
有这些基本的了后,就可以着手写一些功能性的代码了。其它的表示方式可参照着改一下VBA中的,很容易得出其表示方式,如设置边框、插入行列等。
接下来,就以坛子中个别实际提问来展示在VSTO C#中的解决方式。除了特别说明,后面的代码都是以office外接程序------excel 2013工作薄中添加菜单按钮的形式来完成功能,展示出来的都仅仅是功能代码段,同时附上vba代码,其它的就不再提了。
同时,非常希望各位网友提供实例给以补充、斧正,众人拾柴火焰高嘛
待续……
|