请看下面的完整实例教程。
Python使用xlrd与xlwt对Excel的读写和格式设定
环境准备
在开始本教程前,请先确保你的计算机上已经安装了Python(版本不低于2.7)和以下两个库:
安装的方式可以使用pip:
pip install xlrd xlwt
读取Excel文件
首先,我们需要打开一个Excel文件。可以使用xlrd模块中的open_workbook()方法来完成。接下来,我们可以使用book.sheets()方法获取到一个Sheet对象的列表。如果我们只需要获取文件中的第一个Sheet,可以通过下面的代码获取:
import xlrd
book = xlrd.open_workbook('example.xls')
sheet = book.sheet_by_index(0) # 获取第一个Sheet
有了Sheet对象之后,我们就可以开始读取文件了。通过sheet对象的cell()方法,我们可以获取某个单元格的内容:
cell_value = sheet.cell(row, col).value
其中,row和col表示所要读取的单元格的行和列的编号,行和列的编号都是从0开始的。
下面是一个完整的示例,它会读取example.xls文件中第一个Sheet中所有单元格的值并输出:
import xlrd
book = xlrd.open_workbook('example.xls')
sheet = book.sheet_by_index(0) # 获取第一个Sheet
for row in range(sheet.nrows): # 循环每一行
for col in range(sheet.ncols): # 循环每一列
cell = sheet.cell(row, col) # 获取单元格
if cell.ctype == xlrd.XL_CELL_TEXT: # 判断单元格类型
print cell.value.encode('utf-8') # 输出单元格内容
在上面的代码中,我们循环读取了Sheet中的每一行和每一列,然后使用cell()方法获取每个单元格的内容。由于单元格中可能存放的是文本、数字、日期等不同类型的数据,在输出单元格内容时,我们需要根据单元格的数据类型进行不同的处理。在本例中,我们只输出了文本类型的单元格内容。
写入Excel文件
接下来,我们要介绍如何使用xlwt模块来写入Excel文件。首先需要创建一个Workbook对象:
import xlwt
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('Sheet1', cell_overwrite_ok=True)
上面的代码创建了一个名为’Sheet1’的Sheet对象,同时将Workbook对象保存为一个名为example.xls的文件。
有了Sheet对象之后,我们就可以开始写入内容了。使用sheet对象的write()方法可以写入某个单元格的内容。代码如下:
sheet.write(row, col, content)
其中,row和col表示所要写入的单元格的行和列的编号,content表示要写入的内容。
下面是一个完整的示例,它会在example.xls文件的第一个Sheet中写入一些内容,并对部分单元格进行格式设定:
import xlwt
book = xlwt.Workbook(encoding='utf-8')
sheet = book.add_sheet('Sheet1', cell_overwrite_ok=True)
# 对部分单元格进行格式设定
style = xlwt.XFStyle()
font = xlwt.Font()
font.bold = True # 粗体
font.name = 'SimSun' # 字体
style.font = font
# 写入第一行的数据
sheet.write(0, 0, u'姓名')
sheet.write(0, 1, u'性别')
sheet.write(0, 2, u'年龄')
# 写入数据并进行格式设定
for i in range(1, 4):
sheet.write(i, 0, u'张三%d' % i)
sheet.write(i, 1, u'男')
sheet.write(i, 2, i + 20, style)
# 保存文件
book.save('example.xls')
在上面的代码中,我们首先对第三列进行了格式设定,设置了字体为宋体并且加粗了字体。然后,我们使用write()方法写入了文件中的各种数据。当然,你也可以根据自己的需求进行更加复杂的格式设定和内容写入。
总结
通过本教程的学习,你应该掌握了如何使用python中的xlrd和xlwt模块读取和写入Excel文件以及如何对单元格进行格式设定的基本方法。当然,Excel文件的读写和格式设定是一项复杂的工程,还有许多高级用法需要你去学习和掌握。