风火编程--python用openpyxl库操作excel创建带多个数据表并存储数据

python用openpyxl库操作excel创建带多个数据表并存储数据

注意
wb是excel实例,只能创建一次.表头只添加一次, line是列表(需要对应顺序, 一般先获取字典类型的item. 再通过封装好的make_line函数生成line)

import os
from openpyxl import Workbook
from settings import CATEGORYS
# 创建文件路径
save_dir = r'/data/'  
if not os.path.exists(save_dir):
    os.makedirs(save_dir)
save_path = r'{}wv.xlsx'.format(save_dir)
# 创建excel文件对象
wb = Workbook()
for category in CATEGORYS:
    # 创建工作簿并指定名称
    ws = wb.create_sheet(category)
    # 添加表头
    ws.append(["name", "age"])
    # 写入内容
    line = make_line(item)
    ws.append(line)
# 将exel文件对象保存到指定路径
wb.save(save_path)

make_line函数示例

def make_line(item):

    line = [
        item.get('name'),
        item.get('age')
    ]
    return line

pandas的to_excel方法突破链接数65530限制的方法:

#先定义一个写入器
writer = pd.ExcelWriter(filename, engine='xlsxwriter', options={'strings_to_urls': False})
            df.to_excel(writer)
            writer.close()  # 保存并关闭
            print("finished")
在处理Excel数据时,经常需要从多个工作表中提取特定行的信息,将这些信息以结构化的方式存储。`openpyxl`提供了强大的接口来操作Excel文件,尤其是在读取和写入数据方面。针对你的需求,可以使用`openpyxl`来遍历工作簿中的所有工作表,检查每一行的特定标识列是否为1,如果是,就将该行的数据读取出来存储为字典,最后将所有这些字典组成一个列表返回。 参考资源链接:[Python读取Excel所有sheet中标识为1的行](https://wenku.youkuaiyun.com/doc/6401ac84cce7214c316ec226?spm=1055.2569.3001.10343) 具体实现步骤如下: 1. 首先,使用`openpyxl.load_workbook`函数加载Excel文件,得到工作簿(Workbook)对象。 2. 通过`workbook.sheetnames`获取工作簿中所有工作表(Worksheet)的名称列表。 3. 遍历每个工作表名称,使用`workbook[sheetname]`获取对应的工作表对象。 4. 确定工作表的行数,使用`sheet.max_row`属性获取。 5. 从第二行开始遍历每一行(第一行通常是表头),检查每行的第一个单元格是否包含数字1。 6. 如果满足条件,创建一个空字典`row_dict`,遍历当前行的每个单元格,将单元格的地址作为键(如A1、B1等),单元格的值作为字典的值。 7. 将填充好的字典添加到列表`rows_list`中。 8. 完成遍历后,`rows_list`中包含了所有满足条件的行数据,以字典的形式存储。 示例代码如下: ```python import openpyxl def get_rows_by_condition(filename): workbook = openpyxl.load_workbook(filename) rows_list = [] for sheetname in workbook.sheetnames: sheet = workbook[sheetname] for row in range(2, sheet.max_row + 1): if sheet.cell(row, 1).value == 1: row_dict = {} for cell in sheet[row]: row_dict[cell.coordinate] = cell.value rows_list.append(row_dict) return rows_list # 使用函数 filename = 'example.xlsx' rows = get_rows_by_condition(filename) print(rows) ``` 在这个示例中,我们定义了一个函数`get_rows_by_condition`,它接受一个文件名作为参数,返回一个包含所有满足条件的行数据的字典列表。通过这种方式,你可以有效地从多个工作表中提取特定行的数据编程的方式处理这些数据。如果你希望进一步学习如何处理这些数据或了解`openpyxl`的更多高级用法,请查看《Python读取Excel所有sheet中标识为1的行》这份资源,其中不仅包含了示例代码,还详细介绍了操作过程和相关的技巧。 参考资源链接:[Python读取Excel所有sheet中标识为1的行](https://wenku.youkuaiyun.com/doc/6401ac84cce7214c316ec226?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值