|
本帖最后由 roych 于 2011-4-2 16:52 编辑
前几天,版友ever035问到,如何批量导入文本文件。其实,如果属于标准格式的话,直接用系统自带的导入外部文件就可以了,不过鉴于他(她)有500多个文件,懒得点击那么多次鼠标,Roy不妨就这个问题谈谈吧。
先谈谈导入的方法,一般不外乎以下几种。当然,读取文件流(TextStream),不过大家对它不太熟悉,就先避而不谈吧。
1、增加查询表(Querytable.Add)来导入。这个很简单,大家可以录制一个导入文件的宏,再按下Alt+F11查看就知道了。
2、打开文件号(Open FileName For Input as FileNumber#)的方式。通过对文件号的循环读取来写入数据。——大家可能对文件号不太了解,按我的理解是,文件号其实就是行数的排列号。当然,如果文本里本身就没有换行的话,而是以某个字符作为换行标志的话,则应该读取其位置作为终点(ReadOut)来判断。——说起来有些复杂,所以我也只是“浅谈”而已。
3、打开文本文件(OpenText)来导入,参数很多,详见附件。我就不再一一解说了。
4、用ADO方法。这个方法我讲了N次(N>=3)了,详见附件以及内置注释。
现在来谈谈如何进行批量导入了:
实际上,批量导入只是对上述方法做一个循环过程罢了。为了达到批量完成的目的,一般要求所有文件应该放在同一个文件夹里。这时候,你至少可以通过两种方法来达到目的。
1、文件系统组件(FileSystemObject),通过获取文件夹(GetFold)的方法从而得到相同格式的文件。
2、文件对话框(FileDialog),通过对文件拾取器获取路径和文件名,从而批量导入。
两者区别在于前者代码较为简单,但知道固定的(绝对或者相对)路径;后者自由度比较大,任意路径均可,但代码相对复杂些。
这里的文件属于标准格式文件。也许有网友会问,如果对于收银小票之类的文件,该如何导入。Roy会轻轻地告诉你,用第二种方法,导入后再定位处理其它不需要的字符。因为行列等不固定位置,除此它法均不佳。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|