1、使用xlrd模块读取excel


1)安装xlrd模块

wget https://pypi.python.org/packages/source/x/xlrd/xlrd-0.9.3.tar.gz
tar -xzvf xlrd-0.9.3.tar.gz
cd xlrd-0.9.3
python setup.py install


2)导入模块

import xlrd


3)打开Excel文件读取数据

data = xlrd.open_workbook('excelFile.xls')


4)使用技巧

4.1获取一个工作表

table = data.sheets()[0]               #通过索引顺序获取
table = data.sheet_by_index(0)         #通过索引顺序获取
table = data.sheet_by_name(u'Sheet1')  #通过名称获取

4.2)获取整行和整列的值(数组)

table.row_values(i)      #数据类型为list            
table.col_values(i)


4.3)获取行数和列数

nrows = table.nrows
ncols = table.ncols


4.4)循环行列表数据

for i in range(nrows ):
    print table.row_values(i)


4.5)获取单元格的值

cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(2,3).value



2、使用xlwd写入excel


1)安装xlwd模块

wget https://pypi.python.org/packages/source/x/xlwt/xlwt-0.7.5.tar.gz
tar -xzvf xlwt-0.7.5.tar.gz
cd xlwt-0.7.5
python setup.py install


2)导入xlwt

import xlwt


3)新建一个excel文件

file = xlwt.Workbook() #注意这里的Workbook首字母是大写
file = Workbook(encoding='utf-8'),就可以在excel中输出中文了,默认是ascii


4)新建一个sheet

table = file.add_sheet('sheet name')


如果对一个单元格重复操作,会引发

returns error:
# Exception: Attempt to overwrite cell:
# sheetname=u'sheet 1' rowx=0 colx=0


所以在打开时加cell_overwrite_ok=True 解决

table = file.add_sheet('sheet name',cell_overwrite_ok=True )


5)写入数据table.write(行,列,value)

table.write(0,0,'test')


6)保存文件

file.save('demo.xls')





另外,使用style

style = xlwt.XFStyle() # 初始化样式

font = xlwt.Font() #为样式创建字体

font.name = 'Times New Roman'

font.bold = True

style.font = font #为样式设置字体

table.write(0, 0, 'some bold Times text', style) # 使用样式