曾经用VSTO2003编过一个小程序,感觉从VBA转过来真的挺费劲。
终于得到VSTO2005了,正好有个活,就又开始了。
原以为有了VSTO,就得到操纵EXCEL的法宝了。
可是,在经过一番痛苦的探索后,感觉:不一定。
比如,在一个列表中,有不同日期录入的数据,想进行某一天的数据汇总和核对,绞尽脑汁,最后还是用EXCEL自己的AdvancedFilter加条件格式才解决。
//把列表中的数据通过高级筛选复制到另一个表中;高级筛选条件已经在目标Sheet的单元格中。
Globals.Sheet2.YiJiMingXi.AdvancedFilter(
Excel.XlFilterAction.xlFilterCopy,
Globals.Sheet4.Range["$B$4", "$B$5"],
Globals.Sheet4.Range["$B$8", Type.Missing],
false);
//设置条件格式显示核对结果。
Excel.FormatCondition condition2 =
Globals.Sheet4.Range[strDaiHaoDiZhi, Type.Missing].get_Offset(0, 6).FormatConditions.Add(
Excel.XlFormatConditionType.xlCellValue,
Excel.XlFormatConditionOperator.xlNotEqual,
Globals.Sheet4.Range[strDaiHaoDiZhi, Type.Missing].get_Offset(0, 3),
Type.Missing);
condition2.Font.Bold = true;
condition2.Interior.ColorIndex = 3;
另外一点,VBA的宏录制还是那么有用,原来以为可以抛开它了,顺便也抛掉依靠宏录制编程的帽子。其实,遇到不会的地方,录制一段宏,会带来意想不到的启发。
初步的理解,VSTO终究是Tools,是与EXCEL的COM交互的工具,并不是说,有了VSTO,EXCEL也跟着进入.Net时代了。