Python操作excel表格有很多支持的库,例如:xlrd、xlwt、openpyxl、win32com,下面介绍使用xlrd、xlwt和xlutils模块这三个库不需要其他的支持,在任何操作系统上都可以使用。
xlrd:可以读取.xls、.xlsx文件,
xlwt:可以编写Excel文档,但不可以直接修改Excel文档,
xlutils:可以通过复制(copy) Excel文档后再进行修改
使用xlrd读取Excel表方法
import xlrd
data = xlrd.open_workbook('demo.xls') #打开excel
data.sheet_names() #查看文件中包含sheet的名称
table = data.sheets()[0] #得到第一个工作表
table = data.sheet_by_index(0) #通过索引顺序得到表
table = data.sheet_by_name(u'Sheet1') #通过工作表名称得到表
nrows = table.nrows #获取行数
ncols = table.ncols #获取列数
table.row_values(i) #获取整行(数组)
table.col_values(i) #整列的值(数组)
#循环行,得到索引的列表
for rownum in range(table.nrows):
print table.row_values(rownum)
#单元格
cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(2,3).value
#分别使用行列索引
cell_A1 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value
使用xlutils修改Excel表方法
from xlrd import open_workbook
from xlutils.copy import copy
rb = open_workbook('m:\\1.xls')
#通过sheet_by_index()获取的sheet没有write()方法
rs = rb.sheet_by_index(0)
wb = copy(rb)
#通过get_sheet()获取的sheet有write()方法
ws = wb.get_sheet(0)
ws.write(0, 0, 'changed!')
wb.save('m:\\1.xls')
使用xlwt编写Excel表方法
#导入xlwt
import xlwt
#新建一个excel文件
file = xlwt.Workbook() #注意这里的Workbook首字母是大写,无语吧
#新建一个sheet
table = file.add_sheet('sheet name')
#写入数据table.write(行,列,value)
table.write(0,0,'test')
#如果对一个单元格重复操作,会引发
#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)
#保存文件
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) # 使用样式