本帖最后由 紫电 于 2014-2-22 16:57 编辑
Excel外接程序开发FAQ 讲师:寂静岭 Q1:C#需要像VB开发外接程序一样,创建Excel对象吗? A1:不需要,App实例已经在插件启动的时候创建好了,可以直接使用Application访问Excel对象。
Q2:这是什么玩意儿? A2:命名空间别名,引用,以后就可以直接使用Excel了。这样可以少写几行。
Q3:字体需要调整吗? A3:建议大家把字体设置为Consolas,然后大小设定为12 或者 14 根据大家的显示器分辨率来。XP的同学可能没有这个Consolas字体,就用宋体也可以。宋体太锐利了,看多了容易烦躁。
Q4:如何绑定Excel对象的相关事件,能否给出例子? A4:。
Q5:+=不是相当于在原有变量基础上,再加一个东西么? A5:其实你说的没错但那只是默认的情况,这个就要说到C#的高级特性,操作符重载了,你只要知道+= 从形象上来看,就是堆叠,增加 就行了。给Event堆上一个处理者,你不想处理就可以不用写,一行都不用,你想处理,才写。操作符重载大家在相当长的一段时期内都不太会用到。多继承算是高级C#特性了,大家混个脸熟就行了,尽量不要让自己的类产生这样的多继承,设计模式的东西会在中级和高级班讲的。
Q6:也就是说,只要是事件处理,都要用+=来new出一个新的事件对象? A6:不是new出一个事件对象,而是 给一个已知事件,绑定一个处理函数。函数名随便起,不一定非得按我那种起法,必须符合EventHandler的声明。
Q7:前面括号里面是什么东东? A7:你们可以试下NewWorkbook 事件,结果会很奇特的 ,tab出来的代码会编译不通过,Application.NewWorkbook +=new Excel.AppEvents_NewWorkbookEventHandler(OnNewWorkbook); 这个和事件的性质没有关系,而是因为Application类是一个 “多继承” 类。 注意看Application有两个父类,但很不巧,这两个父类都有一个叫NewWorkbook的,所以编译器就傻掉了,他不知道你要用哪个。所以你要告诉它。这是另一个 ,可以清楚的看到这个并不是事件而是一个叫NewFile类型的东西,总之不是事件。
Q8:这个接口的内容在哪里看到的? A8:F12可以看到定义,光标先停上去。
记录人:紫电
|