使用Python3.4.1操作xls文件

        在批量操作XLS文件时,我们一般会使用EXCEL内置的VBA。但是如果数据量较大,那么用VBA给表格批量设置格式的时候将会非常慢。我们可以用其它语言直接对xls文件进行读写以加快运行速度。微软为C和C++都预留了读写XLS的API,但是用起来比较麻烦。为了读写XLS而专门安装一个巨大的开发环境非常不划算。所以我们使用Python3.4来读写XLS文件。

        环境:Windows7 x64、Python3.4.1、xlwt3(0.1.2)、xlrd(0.9.3)

一、写XLS文件

        xlwt3可以将文件保存为xls格式,同时支持设置xls格式(暂时不支持xlsx)。xlwt3支持python3.1+。

        如果已经安装好pip工具,则可以直接使用如下命令安装xlwt3。

pip install xlwt3

        或者从 https://pypi.python.org/pypi/xlwt3/ 下载最新版xlwt3的压缩包。解压后进入目录,并执行如下命令安装。

python setup.py install

        安装完成后,可在IDLE中测试一下是否安装成功。打开IDLE并输入以下代码。

>>> import xlwt3 as xlwt
>>> wb = xlwt.Workbook()
>>> ws = wb.add_sheet( 'Test Sheet' )
>>> ws.write( 2, 3, 'Hello' )
>>> wb.save( '/home/hekko/example.xls' )

        然后就会在/home/hekko/目录下生成一个名为example.xls的表格文件,其中包含一张名为Test Sheet的表单,在第3行、第4列的单元格内有'Hello'字样。

        这样就说明已经可以对xls文件进行基本的写操作了。

        写入格式化文本也是可以实现的。打开IDLE并输入以下代码。

>>> font0 = xlwt.Font()
>>> font0.name = '黑体'
>>> font0.colour_index = 5
>>> font0.bold = True
>>> style0 = xlwt.XFStyle()
>>> style0.font = font0
>>> wb = xlwt.Workbook()
>>> ws = wb.add_sheet( 'Font Test' )
>>> ws.write( 10, 5, 'Font黑体测试', style0 )
>>> wb.save( '/home/hekko/font-test.xls' )
        比较让人惊讶的是IDLE和已经写入的XLS文件中,中文完全没有出现乱码问题,这大概就是python3相对于python2最明显的改进了。
        这些代码在/home/hekko/目录下新建了一个名为font-test.xls的xls文件,并在第11行、第6列的单元格内写入'Font黑体测试'字样,可以注意到该字符串的格式有了变化,为黑体、明黄色、加粗。

        这只是写入格式化内容的一个简单例子,更多的例子可以参考http://www.youlikeprogramming.com/2011/04/examples-generating-excel-documents-using-pythons-xlwt/。

二、读取XLS文件

        xlrd可以读取xls和xlsx文件中的内容,xlrd同样支持python3.2+。

        安装方法同上。

        安装好之后,在IDLE中输入以下代码,来测试xlrd是否安装成功。

>>> import xlrd
>>> data = xlrd.open_workbook( '/home/hekko/example.xls' )
>>> table = data.sheet_by_name( u'Test Sheet' )
>>> table.nrows
>>> table.ncols
>>> table.row_values( 2 )
        table.nrows和table.ncols分别输出example.xls文件的行数和列数,table.row_values( 2 )则输出一个列表,包含第3行(xlrd中是以0为base的)的所有数据。对应上面写入的那个文件,这里应该输出的是:

['', '', '', 'Hello']
        这样,使用python3和xlrd对xls进行读操作就可以实现了。

你可能感兴趣的:(Python)