我试了一下,和我上面说的一样,你如果使用“插入数据”的方法来连接excel工作表,你选择的数据里就只能是纯数值,不能带有文本。
另外,你要把excel关闭掉,才能做到
正确的
引用,否则就会报错。这个不是MC的bug,而是因为MC的所有计算说白了就是操作内存,只有“读取数据”和“写入数据”这两个功能是操作硬盘的,它是先找到你所引用的文件,然后把数据写入内存,然后再读取内存进行计算,这么个过程,但当你所引用的excel工作表处于打开状态的时候,首先windows认为excel的硬盘操作扇区是活动的,然后是内存也处于激活状态,这样你才能很流畅的使用excel,此时MC将无法判断你所要引用的是什么,因为它读取的是确定的硬盘扇区,而不是活动的硬盘扇区。即使你对excel进行了存盘,windows仍然将excel进程放在内存里的,那部分硬盘扇区仍然处于活动的。
另外,我还发现,用MC的 “读取数据”和“写入数据”功能来操作硬盘,这个dll指针是C++编的,而不是VB,有点儿意思。也就是说MC操作硬盘扇区的速度理论上是和高级编程语言的速速是一样的快,比“组件”运行速度快多了!
把excel关掉之后,就是下面的样子了:


嗯,b是用插件来连接excel的,我只显示了excel文件的图标,但我查了一下进程,发现此时excel软件在后台已经运行了,所以就显得慢很多。我用的是二逼版的excel2010,挂了好多没用的excel插件 :(
而在“读取数据”中,excel进程是没有进行的,说明MC在此时仅仅是在对具有一定数据格式的硬盘扇区进行读取。这个读取速度貌似比MC引用自己的xmcd或者mcd工作表的速度都快。