python使用xlrd与xlwt对excel的读写和格式设定

  • Post category:Python

请看下面的完整实例教程。

Python使用xlrd与xlwt对Excel的读写和格式设定

环境准备

在开始本教程前,请先确保你的计算机上已经安装了Python(版本不低于2.7)和以下两个库:

  • xlrd: 用于读取Excel文件。
  • xlwt: 用于写入Excel文件。

安装的方式可以使用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文件的读写和格式设定是一项复杂的工程,还有许多高级用法需要你去学习和掌握。