python使用xlrd模块读写Excel文件的方法

  • Post category:Python

下面是对于“python使用xlrd模块读写Excel文件的方法”的完整实例教程。

xlrd模块简介

xlrd模块是Python中一个强大的用于读取Excel电子数据表格的库。xlrd模块可以读取Excel 2003版本之前的xls文件、Excel 2007版本之后的xlsx文件和以XML格式存储的Excel电子表格文件等,它同样在Windows、Linux、Mac等各种平台上都可以使用。

安装xlrd模块

使用pip工具可以轻松安装xlrd模块,如下所示:

pip install xlrd

读取Excel文件数据

使用xlrd模块读取Excel文件中的数据有以下步骤:

  1. 导入xlrd模块:

python
import xlrd

  1. 打开Excel文件:

python
book = xlrd.open_workbook('file.xls')

这里的“file.xls”指代的是你要读取的Excel文件的名称。

  1. 获取工作表对象:

python
sheet = book.sheet_by_index(0)

  • sheet_by_index()表示按索引顺序获取Excel文件中的工作表对象,参数索引值从0开始。
  • sheet_by_name()表示按工作表名称获取Excel文件中的工作表对象。

  • 获取行数和列数:

python
num_rows = sheet.nrows
num_cols = sheet.ncols

  1. 遍历Excel中的数据:

python
for i in range(num_rows):
for j in range(num_cols):
print(sheet.cell_value(i, j))

这里的cell_value()是用来获取单元格数据的函数。它的参数是单元格的行和列编号,从0开始编号,返回值为单元格中的数据。

示例1:假设我们有一个Excel文件,其中包含以下数据:

A B C
1 1 2 3
2 4 5 6
3 7 8 9

我们可以使用以下代码来读取这个Excel文件并将其中的内容打印输出:

import xlrd

book = xlrd.open_workbook('example.xls')
sheet = book.sheet_by_index(0)

num_rows = sheet.nrows
num_cols = sheet.ncols

for i in range(num_rows):
    for j in range(num_cols):
        print(sheet.cell_value(i, j))

输出结果如下:

1.0
2.0
3.0
4.0
5.0
6.0
7.0
8.0
9.0

写Excel文件数据

如果想要使用Python写入Excel文件,需要使用到的是xlwt模块,它是Excel文件写入模块。下面我们来简单了解一下如何使用xlwt模块。

使用xlwt模块写入Excel文件有以下步骤:

  1. 导入xlwt模块:

python
import xlwt

  1. 创建Excel文件对象:

python
book = xlwt.Workbook(encoding='utf-8')

  1. 创建工作表对象:

python
sheet = book.add_sheet('Sheet1')

这里的‘Sheet1’表示工作表的名称。

  1. 写入数据:

python
sheet.write(row, col, data)

这里的write()函数用来将数据写入Excel文件中的单元格。它需要三个参数:行号、列号和数据。坐标原点为(0,0)。

  1. 保存Excel文件:

python
book.save('file.xls')

这里的“file.xls”指代的是你要写入的Excel文件的名称。

示例2:我们将前面的Excel表格的所有数字乘以2,再重新写入一个新的Excel文件中,代码如下:

import xlrd
import xlwt

book = xlrd.open_workbook('example.xls')
sheet = book.sheet_by_index(0)

num_rows = sheet.nrows
num_cols = sheet.ncols

new_book = xlwt.Workbook(encoding='utf-8')
new_sheet = new_book.add_sheet('Sheet1')

for i in range(num_rows):
    for j in range(num_cols):
        value = sheet.cell_value(i, j)
        value = float(value) * 2
        new_sheet.write(i, j, value)

new_book.save('new_file.xls')

执行完毕后,将会得到一个新的Excel文件new_file.xls,其中包含所有数字乘以2后的内容。

总结

通过本文的介绍,我们了解了如何使用xlrd模块读取Excel文件中的数据,以及如何使用xlwt模块将数据写入Excel文件中。这些技能在日常的工作和数据处理中都是非常实用的。