在Excel催化剂中,独树一帜地推出了Excel与数据库交互功能,目前仅实现了对Sqlserver的交互,在通用型插件中仅此一家,别无其他。
为何会出现这样的局面呢,原因大概有以下几大方面:
- 和数据库交互的使用群体太窄,除非极个别数据分析师会用到 这个问题的确存在,在Excel群体中,能够有机会接触到数据库层面的聊聊无几,当属于最上层高级Excel用户才会涉猎,对Excel催化剂来说,本来群体已定位为重度Excel高级用户使用,有此功能才显得插件的饱满性。
- 开发者本身不懂数据库,更无从开发数据库相关的功能 这个原因也很普遍,看市面上的书籍,除非专业大部头的Excel书,才会简单介绍下数据库的方面的知识,大众书籍里少有提及,但开发插件的书籍倒有许多,所以造成了很大部分的Excel开发群体是不懂数据库的。 对Excel催化剂来说,既然是提供催化剂般震撼性效果,没有数据库,也谈不成如何地震撼,毕竟少数据量情形下,手工做和插件实现,也就是几个小时和1分钟的区别,Excel催化剂想要的极致效果是不可能实现和1分钟的事情。
- 和数据库交互的功能都躲藏在各大商业定制化插件领域 许多的商业系统,因其数据交互的需要,很多时候会开发一些Excel插件来辅助系统一起运作,当然更多地是对系统数据查询层面,在数据上传、执行SQL语句等方面,肯定不会开放这样的功能的。 Excel催化剂非一般性的小白收割机,也非一般性的IT财团卖钱包装机,所以很另类地提供了数据库交互功能,在免费的方式下即可使用,造福了大片的群体。
言归正传,Excel催化剂与Sqlserver交互靠的是什么?
在传统VBA开发中,只能用ADO这样的方式和数据库交互,当然代码不嫌麻烦的话,勉强还可以用着。
在VSTO的环境下,完全已经没有理由再用ADO这样的方式访问数据库了,虽然还保留这样的能力,而应该用上ADO.Net的方式,对ADO进行了很大的升级。
前面篇幅里提及的DataTable就是ADO.Net的其中一部分,大家可能已经可以略略地感之到它的便利性。
在.Net的世界里,区别于传统VBA开发的思维是,想要实现某个功能的首要任务不是立马撸起手袖干起来,而是习惯性地去百度、谷歌一翻,看看有没现成的轮子可用,特别是通用性的大部分程序员都会用到的功能,千万别一开始自己去撸代码,除非对自己代码能力特别有信心,同时抱负着拯救千万低级码农于一身的使命才合适去做这样的事情。
不扯远,如何用懒癌的方式实现Excel与Sqlserver交互?答案是找个SqlHelper代码段即可。
以下是笔者初学VSTO时,在百度上找到的热心码农写好的代码,一直沿用至今,直接上代码 具体代码因文章字数限制不能发布,可在阅读原文的简书平台上查看。