全部学习汇总: GreyZhang/python_basic: My learning notes about python. (github.com)
做个小结,实际上是写的我自己学习的过程。
关于Excel的处理方式很多,我也不会那么多,在这里我只想写一下我自己接触过的。大致是三种方式:MATLAB、Perl以及Python。
MATLAB实际上调用了win32的接口,因此,选择这种处理方式你不仅需要有MATLAB的软件还要有Office。
MATLAB用来处理Excel学习曲线是非常平缓的,一下子基本就能够搞定大部分,可以提升的空间并不是很大。因为提供的接口并不是特别多,没有Perl或者Python漫天繁星的感觉。使用这个有很大的好处是你不必担心重写的问题,overwriting在Perl或者Python摆脱win32处理Excel的时候会有一点问题。说起来,这方面Python的xlwt库已经做得不错,直接提供了重写的功能。但是不推荐你反复重写,因为那些操作不仅反复写入硬盘耗去大量的时间尤其是使用MATLAB时会反复调用Excel的接口吃掉很大一部分CPU的资源。常用的命令(确切说应该是函数)就那么几个:xlsfinfo、xlsread、xlswrite。而读写基本上就是后面两个,对于sheet页的处理判断确实是需要xlsfinfo。
处理Excel实际上搞定读写就好了,当数据过于庞大的时候我们会遇到big data的问题。Perl在这方面做得非常好,因为它有自动处理big data的功能而且跟普通的使用没有任何差别。如果使用Python,写入大约1000次进行一次frush把数据写入硬盘缓存是比较好的选择。这方面,使用MATLAB直接调用Excel的时候没有很好的处理方法,因此确实是会觉得速度慢,很慢!
我觉得接下来就没必要啰嗦了,直接上例子会好些。
读取Excel之MATLAB
编写如下的代码,读取并打印出test.xls文件中的信息。
打印出类似如下的信息:
test_excel
2015.10.18
2015.10.20
2015.10.19
2015.10.21
************************************
2015.10.19
2015.10.21
2015.10.20
2015.10.22
************************************
2015.10.20
2015.10.22
2015.10.21
2015.10.23
************************************
说起来,这不是一种很好的编程方式。而这,确实是我之前过去一直用的一种方式。当我看了MIT的程序设计教程之后,我也开始尽量的函数话,或者是直接采用面向对象的编程方式。不过,脚本可以随意堆积的特性无疑是让他灵活方便的一个很重要因素,这里简单改写成函数吧!
这样,命令窗口直接以函数调用的方式传入参数运行,得到的是一样的效果。但是,这个在工作量以及处理模式繁多的设计中肯定是要灵活多了。
面向对象的设计这儿就暂时不写了。
Python,这个是最近一段时间我一直喜欢用的一个。跟Perl一样,不依赖于Office,在Windows与Linux下也都是通用的。