相关文章推荐
作者:Admin 原创

本文讲解在 Python 中如何将数据写入 Excel 文件,依次从一格写入、一行写入、多行写入三个不同层面进行讲解。本文使用 openpyxl 库来实现 Python 对 Excel 文件的操作。

通过 pip 安装 openpyxl 库:

pip install openpyxl

一、将数据写入一个单元格

Python 程序:

from openpyxl import load_workbook
# 设置文件名和工作表名,大小写敏感
file_path = '测试的文件.xlsx'
sheet_name = 'Sheet1'
# 加载 Excel 文件
workbook = load_workbook(file_path)
# 选择工作表
sheet = workbook[sheet_name]
# 将数据写入C20单元格
sheet['C20'] = '写入的数据'
# 保存工作簿
workbook.save(file_path)

将数据写入一个单元格很简单,只需在 sheet 对象后面加上方括号指定单元格坐标,并对其进行赋值即可。然后记得要调用 workbook.save(file_path) 保存工作簿,否则修改不会生效。

二、追加写入一行数据

将数据写入一个单元格虽然简单,但如果逐个单元格指定下标写入数据,效率太低,体现不了编程的优势。在实际项目中,遇到更多的情况是需要一次性写入整行数据,那么该如何做呢?

可以使用列表存放数据,然后作为参数传给一个自定义函数,这个函数负责以追加的形式将整行数据写入 Excel 文件。

Python 程序:

from openpyxl import load_workbook
def append_row(file_path,sheet_name,data):
    workbook = load_workbook(file_path)
    sheet = workbook[sheet_name]
    # 整行追加写入 Excel
    sheet.append(data)
    workbook.save(file_path)
# 设置文件名和工作表名,大小写敏感
file_path = '测试的文件.xlsx'
sheet_name = 'Sheet1'
# 测试数据
data = ['数据A','数据B','数据C','数据D']
append_row(file_path,sheet_name,data)

使用 openpyxl 库的 append() 方法可以一次追加一行数据。如果将倒数第二行 data 列表的定义改成交互式输入,可能更符合某些实际使用场景,但这不是本文的关注点,读者有需要可以自行修改。

三、多行循环追加写入

对上面的程序稍加修改即可得到“多行循环追加写入 Excel”的 Python 程序:

from openpyxl import load_workbook
def append_data(file_path,sheet_name,data):
    workbook = load_workbook(file_path)
    sheet = workbook[sheet_name]
    # 循环追加写入 Excel
    for row in data:
        sheet.append(row)
    workbook.save(file_path)
# 设置文件名和工作表名,大小写敏感
file_path = '测试的文件.xlsx'
sheet_name = 'Sheet1'
# 测试数据
data = [
    ['数据A1','数据B1','数据C1','数据D1'],
    ['数据A2','数据B2','数据C2','数据D2'],
    ['数据A3','数据B3','数据C3','数据D3'],
append_data(file_path,sheet_name,data)

这个程序定义了一个二维列表 data ,将其传给自定义函数 append_data() ,该函数使用 openpyxl 库实现对 Excel 文件的打开、写入、保存、关闭等操作,本程序主要焦点在于循环执行 sheet.append(row) 将二维列表追加写入 Excel 文件。

#openpyxl
 
推荐文章