• Pandas ExcelWrite()读写Excel


    Pandas ExcelWrite()的使用

    1. pandas.ExcelWrite()参数介绍

    pandas.Excelwrite(path, engine=None, date_format=None, datetime_format=None, mode=‘w’, storage_options=None, if_sheet_exists=None, engine_kwargs=None, **kwargs )

    path: str, Excel文件路径

    engine: str, 写入的引擎,常用的为‘openpyxl’, 我测试时Python是安装了openxl模块

    date_format: str, 写入日期时可以自定义格式,比如:‘YYYY-MM-DD HH:MM:SS’

    mode: str, 文件的读写模式,具体可以参照点击查看,

    Starage_option: dict, 对特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等,如果使用将由 fsspec 解析的 URL,例 如,以“s3://”、“gcs://”开头。应该是用来连接服务器用的,不确定。

    if_sheet_exixts: str, 当写入的sheet存在时,可以设置为‘error’, ‘new’, ‘replace’, ‘overlay’.

    ​ error: 如果sheet已经存在,则报错

    ​ new: 创建新的sheet,命名规则更根据使用的engine

    ​ replace: 删除原sheet的内容,重新写入, mode=‘a’

    ​ overlay: 在原有的内容后面追加,df.to_excel()可以通过startcol或者startrow指定追加的位置, mode=‘a’, **pandas为1.4才支持overlay **

    engine_kwargs: 要传递到engine的关键字参数,传递给给engine的以下参数

    • xlsxwriter: xlsxwriter.Workbook(file, **engine_kwargs)
    • openpyxl (write mode): openpyxl.Workbook(**engine_kwargs)
    • openpyxl (append mode): openpyxl.load_workbook(file, **engine_kwargs)
    • odswriter: odf.opendocument.OpenDocumentSpreadsheet(**engine_kwargs)

    2. 示例:demo.xlsx表格里创建了三个表单为Sheet1, Sheet2, Sheet3

    import pandas as pd
    
    df1 = pd.DataFrame({'a': [1, 2, 3, 4, 5, 66666]})
    df2 = pd.DataFrame({'b': [111, 222, 3333, 4333, 5555, 66666]})
    df3 = pd.DataFrame({'b': [1, 22, 33, 43, 55, 66]})
    
    # if_sheet_exists = replace 覆盖
    with pd.ExcelWriter(path='./csv_files/demo.xlsx', mode='a', engine='openpyxl', if_sheet_exists='replace') as writer:
    	print(writer.sheets)  # 返回元祖,key为sheet名字,value为sheet对象
    	df1.to_excel(excel_writer=writer, sheet_name='Sheet1')  # 写入Sheet1方式为覆盖
    
    	writer.if_sheet_exists = 'overlay'  # 写入Sheet2方式改为追加
    	df2.to_excel(excel_writer=writer, sheet_name='Sheet2', startrow=10)
    
    	writer.if_sheet_exists = 'new'  # 写入Sheet3方式改为新建Sheet,如果表已经存在则会根据'openpyxl'的命名方式创建sheet
    	df3.to_excel(excel_writer=writer, sheet_name='Sheet3', startrow=10)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
  • 相关阅读:
    线性表01- 数组与简易接口设计
    安装使用electron
    PHP基础学习第十四篇(了解和使用PHP的数据类型、常量、字符串变量、运算符)
    让Python遇上Office--从编程入门到自动化办公实践
    基于Levy飞行策略的改进樽海鞘群算法-附代码
    A. Two Elevators
    Vue3 + ts + jest 单元测试 配置以及使用
    分布式锁的实现原理
    Java检测网络是否正常通讯
    Redis数据序列化器
  • 原文地址:https://blog.csdn.net/weixin_42118352/article/details/126033134