使用Python读取和修改Excel文件(基于xlrd、xlwt和openpyxl模块)

下面详细讲解如何使用Python读取和修改Excel文件。

1. 介绍

Excel是一种广泛使用的电子表格软件,而Python是一种流行的编程语言。Python中有许多可以帮助我们读取和修改Excel文件的库。本教程将重点介绍三个最受欢迎的库:xlrd、xlwt和openpyxl。

  • xlrd:用于读取Excel文件,支持.xls和.xlsx格式。
  • xlwt:用于创建和修改Excel文件,支持.xls格式。
  • openpyxl:用于创建和修改Excel文件,支持.xlsx格式。

请注意,xlwt只能处理旧版本的.xls文件,openpyxl只能处理新版本的.xlsx文件,而xlrd可以处理旧版本和新版本的Excel文件。

2. 安装

在使用这些库之前,我们需要先安装它们。可以使用pip命令来安装它们,命令如下:

pip install xlrd xlwt openpyxl

3. 读取Excel文件

以下代码演示了如何使用xlrd读取Excel文件:

import xlrd

# 打开Excel文件
workbook = xlrd.open_workbook('example.xlsx')

# 获取所有工作表名
print(workbook.sheet_names())

# 获取第一个工作表
sheet = workbook.sheet_by_index(0)

# 获取行数和列数
nrows, ncols = sheet.nrows, sheet.ncols
print(f"Number of rows: {nrows}, Number of columns: {ncols}")

# 遍历打印每一行数据
for i in range(nrows):
    row = sheet.row_values(i)
    print(row)

以上代码打印了Excel文件的工作表名、行数和列数,以及每一行的数据。你可以根据需要修改代码来提取所需的数据。

4. 创建和修改Excel文件

以下代码演示了如何使用openpyxl创建和修改Excel文件:

import openpyxl

# 创建一个新的工作簿
workbook = openpyxl.Workbook()

# 获取第一个工作表
sheet = workbook.active

# 填写标题行
sheet['A1'] = '姓名'
sheet['B1'] = '年龄'
sheet['C1'] = '性别'

# 填写数据行
sheet.append(['张三', 20, '男'])
sheet.append(['李四', 25, '女'])
sheet.append(['王五', 30, '男'])

# 保存工作簿
workbook.save('example.xlsx')

以上代码创建了一个新的.xlsx文件,并在其中创建第一个工作表,然后填写标题行和数据行,并将其保存为Excel文件。你可以根据需要修改代码来创建自己的Excel文件。

以下代码演示了如何使用openpyxl修改Excel文件:

import openpyxl

# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')

# 获取第一个工作表
sheet = workbook.active

# 获取行数和列数
nrows, ncols = sheet.max_row, sheet.max_column
print(f"Number of rows: {nrows}, Number of columns: {ncols}")

# 插入新行
new_row = ['赵六', 35, '女']
sheet.append(new_row)

# 修改数据
sheet['B2'] = 26

# 保存工作簿
workbook.save('example.xlsx')

以上代码打开了一个.xlsx文件,并修改了其中的数据,然后保存文件。你也可以根据需要修改代码来修改自己的Excel文件。

5. 示例说明

以下是两个简单的示例说明:

示例1:计算Excel文件中某一列的总和

假设我们有一个.xlsx文件,其中包含一个名为Sheet1的工作表,其中第一列是数值。我们想计算该列的总和。以下是实现这个目标的代码:

import openpyxl

# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')

# 获取第一个工作表
sheet = workbook['Sheet1']

# 计算列的总和
total = 0
for cell in sheet['A']:
    if isinstance(cell.value, (int, float)):
        total += cell.value

print(f"The sum of column A is {total}")

以上代码计算了列A的总和,并打印结果。

示例2:将Excel文件中的特定数据导出为CSV文件

假设我们有一个.xlsx文件,其中包含一个名为Sheet1的工作表,我们想将其中某一列特定值的数据导出为CSV文件。以下是实现这个目标的代码:

import csv
import openpyxl

# 打开Excel文件
workbook = openpyxl.load_workbook('example.xlsx')

# 获取第一个工作表
sheet = workbook['Sheet1']

# 导出特定值的数据到CSV文件
with open('output.csv', mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(['ID', 'Name'])  # CSV文件的标题行
    for row in sheet.iter_rows(values_only=True):
        if row[2] == 'male':  # 只保留性别为男性的记录
            writer.writerow([row[0], row[1]])  # 写入CSV文件中

以上代码读取.xlsx文件中的工作表数据,并将性别为男性的记录导出到CSV文件中。你可以根据需要修改代码来导出自己文件中的数据。

6. 总结

本文介绍了如何使用xlrd、xlwt和openpyxl三个库来读取和修改Excel文件。我们演示了如何使用这些库来读取和创建Excel文件,并提供了两个示例说明。如果你需要在Python中处理Excel文件,请尝试使用这些库,它们将为你节省大量时间。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:使用Python读取和修改Excel文件(基于xlrd、xlwt和openpyxl模块) - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • Django 表单模型选择框如何使用分组

    使用Django表单中的选择框(select)时,有时候需要对选项进行分组,以便用户更方便地选择。本文将详细讲解如何在Django的表单中使用分组选择框。 1.创建分组选择框的选项 首先,需要创建选项和选项组。假设我们有一个产品表单,需要用户输入该产品所属的部门。在此示例中,我们创建两个有关部门的选项组:“技术部门”和“其他部门”。选项组中的每个选项都将属于…

    python 2023年6月3日
    00
  • Python脚本完成post接口测试的实例

    Python脚本完成POST接口测试的实例 在进行接口测试时,我们可以使用Python脚本来完成POST接口测试。本文将介绍如何使用Python脚本完成POST接口测试,并提供两个示例。 步骤一:安装所需库 在进行POST接口测试之前,我们需要安装所需的库。我们可以使用pip命令来安装: pip install requests 步骤二:发送POST请求 我…

    python 2023年5月15日
    00
  • Python随机值生成的常用方法总结

    Python随机值生成的常用方法总结 在Python中,随机值的生成十分重要,常用于模拟实验、数据采样等场景。本文总结了Python中常用的随机数生成方法,包括随机整数、随机浮点数、随机字符等。 随机整数 randint() randint(a,b)方法可以生成从a到b范围内的随机整数,包括a和b两个端点。 示例: import random result …

    python 2023年5月14日
    00
  • Excel 在打开工作簿时始终从A1单元格开始

    要在 Excel 中始终从 A1 单元格开始打开工作簿,可以按照以下步骤进行操作: 打开需要设置的 Excel 工作簿。 在 Excel 菜单栏中选择“文件”选项卡,然后选择“选项”按钮。 在弹出的“Excel 选项”对话框中,选择“高级”选项卡。 在“编辑选项”区域中,找到“在打开文档时”选项,并勾选“始终使用 A1 单元格作为活动单元格”复选框。 点击“…

    云计算 2023年5月11日
    00
  • 解决reload(sys)后print失效的问题

    当执行 reload(sys) 后,sys.stdout 和 sys.stdin 等标准输入输出可能会失效,如果在此之后使用 print 函数进行输出,可能会出现无法输出的情况。下面是解决该问题的完整攻略: 1. 导入模块 首先需要导入必要的模块,包括 sys 和 io: import sys import io 2. 定义输出函数 接着,需要定义一个输出函…

    python 2023年5月20日
    00
  • python中ConfigParse模块的用法

    下面我详细讲解一下“python中ConfigParse模块的用法”的完整攻略。 一、ConfigParse模块的概述 ConfigParse 模块是 Python 标准库中的一个模块,它主要是用来解析配置文件的。配置文件是指那些包含了程序启动的基本参数的文件,它通常会包含一些键值对的配置信息,例如数据库连接信息、邮件服务器信息等等。 使用 ConfigPa…

    python 2023年6月2日
    00
  • Python制作Windows系统服务

    对于Python制作Windows系统服务的完整攻略,可以按照以下步骤进行: 1. 安装pywin32模块 在制作Windows系统服务之前,需要先安装pywin32模块,它是Python在Windows操作系统下的一个扩展库,可以实现操作Windows系统的一些功能,包括服务的创建和管理。 可以使用pip安装pywin32模块,命令如下: pip inst…

    python 2023年5月30日
    00
  • 利用python修改json文件的value方法

    当我们需要修改一个JSON文件的数据时,可以使用Python提供的json模块来读取JSON文件到Python中,使用Python中的数据处理操作来修改需要修改的数据,最后再将修改后的数据写回到JSON文件中。 下面是修改JSON文件value的具体步骤: 导入json模块,使用open()函数读取JSON文件到Python中: “`python impo…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部