动态处理excel转换CSV文件实践

之前写的一个小工具,为了保证处理数据的速度,需要csv的数据文件。之前总是用Excel文件另存为获得,这往往造成许多不便,尤其是使用有多个sheet的表格的文件另存为时出现问题的概率更高。因此,想改进一下程序,初步的优化目标是:程序判断所选文件是Excel文件还是csv文件(openfiledialog筛选剩此两种文件),若是csv文件则按原程序流程执行。如果是Excel文件则进行另存为处理,若有多个数据sheet则,弹出可选择sheet对话框,选择相应的sheet项将改文件另存为csv文件,之后按原程序流程进行。

任务过程中遇到的问题及处理方法

1)处理Excel文件首先要在项目中添加引用com组件中的Microsoft Excel XX object library。可参看博文http://blog.youkuaiyun.com/tekuiero/article/details/50534001。另外,在后台处理Excel文件的时候,会出现程序退出后Excel后台进程无法关闭的情况,原因是默认情况关闭Excel后台使用时,会弹出警告对话框,供用户选择后才会完全关闭。而程序调用则无法显示该弹出的对话框,因此卡在此位置。解决方法是需要将DisplayAlerts属性设置为false,然后调用Quit()方法;

2)  在处理多个sheet项的Excel文件的时候,希望能够动态弹出带有sheet名的radiobutton项,在用户选取其中之一后执行后续程序流程。动态生成控件的难度不大,只需要定义好控件的位置大小等属性就基本上没有问题,问题的难点在于如何使用动态生成的控件,并且让程序在此处等待用户操作。在解决问题过程中,发现窗体的showdialog()方法可以实现阻断父窗体程序的功能,属于模态显示,与show()不同可以参看http://blog.youkuaiyun.com/zlwzlwz

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值