关于数据库导出excel的备忘录

长期以来一直需要做这样的工作,定期把数据库中某个表的内容原封不动的导出到excel中,大体上有几个需求

1.程序可以根据输入参数自动更换读取库表。

2.程序可以原封不动的复制表中所有列,并保存到excel

3.sheet中要加上标题行,内容为表名称

4.sheet的名称要和表名称一样


解决方案

1.使用数据库端技术实现,DTS加计划任务即可实现

2.使用应用程序读取数据,然后写入dts。

方案1问题

1.存储过程中库表名称做参数难以实现

2.没了

优点是稳定性好,有日志,好追踪,好维护

 方案2问题

1.数据量大,数据库不能一次读完,读数据过程中数据连接断开,数据丢失

2.Excel因为各种奇怪原因崩溃.

3.应用程序本身崩溃,导致excel对象没有释放。

4.其它未知风险 

 优点

开发熟练。

最后使用vbs脚本开发,原因,用户不需要部署.net framework。

设计思路

1.把数据库链接,要执行的sql语句分别写到单独配置文件,实现工厂模式。这样每次修改配置文件即可

2. 读取内容写成.csv格式,这一格式是纯文本,写完之后再统一便利文件夹下的CSV,一次性另存为excel。这一技术的缺点是无法写入sheet名称,且不能保证sheet格式,后放弃

3.一旦抛出异常,便利内存中excel进程,然后杀死即可。 

大体就写这样一个脚本,vbs链接数据库,vbs读文件 ,vbs写文件,vbs遍历进程杀死脚本。 

 

 

 

posted on 2010-01-22 22:48 水果阿生 阅读(...) 评论(...) 编辑 收藏

导航

公告