下面我将详细讲解一下如何利用Python中的xlrd和xlwt模块来操作Excel表格。
简介
xlrd和xlwt分别是Python中用于读取和写入Excel文件的第三方模块。其中,xlrd模块能够读取Excel文件中的数据和格式信息,并将其封装成Python对象;而xlwt模块则可以在Python环境中对Excel文件进行写入、修改和保存操作。这两个模块结合起来使用,可以方便地实现Excel文件的数据读取和写入。
安装
在使用xlrd和xlwt模块之前,需要先安装它们。可以通过以下命令进行安装:
pip install xlrd
pip install xlwt
读取Excel文件
在使用xlrd模块读取Excel文件之前,需要先导入模块:
import xlrd
接着,可以使用open_workbook方法打开一个Excel文件:
workbook = xlrd.open_workbook('example.xls')
其中,example.xls是需要读取的Excel文件名。默认情况下,当前目录下的文件名是相对路径,也可以使用绝对路径进行打开。
打开Excel文件之后,可以获取工作表的数量:
num_sheets = workbook.nsheets
print('Number of sheets:', num_sheets)
上述示例中,nsheets是获取工作表数量的方法。接下来,可以获取指定工作表的名称以及行数和列数:
sheet = workbook.sheet_by_index(0) # 通过索引获取第一个工作表
print('Sheet name:', sheet.name)
print('Number of rows:', sheet.nrows)
print('Number of columns:', sheet.ncols)
上述示例中,sheet_by_index方法获取了第一个工作表(索引从0开始),name属性获取了工作表的名称。另外,nrows和ncols获取了工作表的行数和列数。
接下来,可以循环读取每一行的数据:
for row_index in range(sheet.nrows):
for col_index in range(sheet.ncols):
cell_value = sheet.cell(row_index, col_index).value
print('({}, {}): {}'.format(row_index, col_index, cell_value))
上述示例中,cell方法根据行和列的索引值,获取了单元格对象,再通过value属性获取了单元格中的数据。
写入Excel文件
在使用xlwt模块写入Excel文件之前,需要先导入模块:
import xlwt
接着,可以使用Workbook方法创建一个新的Excel文件:
workbook = xlwt.Workbook()
创建Excel文件之后,可以创建一个新的工作表:
sheet = workbook.add_sheet('Sheet1')
其中,Sheet1是工作表名称,如果需要添加多个工作表,则重复以上两行代码即可。
具体的写入操作,可以借助工作表对象的方法来实现。例如,可以使用write方法写入一个单元格:
sheet.write(0, 0, 'Hello')
以上示例中,write方法中的参数依次为行、列和要写入的数据。
还可以使用循环来写入多个单元格的数据:
for i in range(5):
for j in range(3):
sheet.write(i, j, i * j)
在写入完数据之后,最后需要使用save方法保存Excel文件:
workbook.save('example.xls')
以上示例中,example.xls是要保存的文件名。默认情况下,文件将被保存在当前工作目录下。
示例说明
下面给出两个示例,以说明如何使用xlrd和xlwt模块操作Excel表格。
示例1:读取Excel文件中的数据
假设现在有一个名为example.xls的Excel文件,其中包含了一些学生的信息,数据如下:
学号 | 姓名 | 性别 | 年龄 |
---|---|---|---|
01 | 张三 | 男 | 20 |
02 | 李四 | 女 | 19 |
03 | 王五 | 男 | 21 |
现在的任务是使用Python读取这个Excel文件,并输出其中的所有数据。代码如下:
import xlrd
workbook = xlrd.open_workbook('example.xls') # 打开Excel文件
sheet = workbook.sheet_by_index(0) # 获取第一个工作表
for row_index in range(sheet.nrows): # 循环读取每一行的数据
for col_index in range(sheet.ncols):
cell_value = sheet.cell(row_index, col_index).value
print(cell_value, end='\t') # 在同一行输出数据
print() # 换行输出
运行以上代码,将输出Excel文件中的全部数据。
示例2:将数据写入Excel文件
假设现在要将一些学生的信息写入Excel文件,其中数据格式和上述示例1中的相同。代码如下:
import xlwt
workbook = xlwt.Workbook() # 新建Workbook
sheet = workbook.add_sheet('Sheet1') # 新建Sheet
header = ['学号', '姓名', '性别', '年龄'] # 表头数据
for i in range(len(header)): # 循环写入表头
sheet.write(0, i, header[i])
data = [('01', '张三', '男', 20), # 数据列
('02', '李四', '女', 19),
('03', '王五', '男', 21)]
for i in range(len(data)): # 循环写入数据列
for j in range(len(data[i])):
sheet.write(i+1, j, data[i][j])
workbook.save('example.xls') # 保存Excel文件
运行以上代码,将生成一个名为example.xls的Excel文件,其中包含了表头和数据列的信息。
总结
使用xlrd和xlwt模块操作Excel文件,可以方便地读取和写入Excel文件中的数据。通过以上示例的介绍,相信读者对xlrd和xlwt模块的使用已经有了更深入的了解。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python如何利用xlrd和xlwt模块操作Excel表格 - Python技术站