web技术

Python写入Excel详解:一格写入、一行写入和多行写入

2023-10-12 19:36 作者: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
推荐文章
如何批量修改文件名?你可能在网上搜到了许多方法,但操作起来并不简单,有...
同事找我帮忙,让我帮他写一个Python程序,用来删除Excel中的重复行。于是我...
如何使用Python在Excel中删除行?实际情景中往往是要求按条件删除、批量删除...
同事找我帮忙,希望能帮她写一个文件检测程序,运行程序就能快速找出被修改...
如何使用 Python 在 Excel 查找数据?如何实现模糊查找和精确查找?如何在一...
推荐专题
如何自己建网站?建网站难不难?其实建网站说难不难,说容易也并不容易,难...
本专题精心收集整理了多种HTML+CSS+JS轮播图实现方案,带详细代码和讲解,正...