• 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
  • 相关阅读:
    LabVIEW做仪器测试不知道是否适用
    Spring IoC
    depot_tools原理和实现
    从0到1建设智能灰度数据体系:以vivo游戏中心为例
    小咖批量剪辑助手款视频批量自动剪辑软件
    yolov5训练与模型量化
    抖音 获取商品详情 API
    【LeetCode】88. 合并两个有序数组
    【视觉SLAM十四讲学习笔记】第二讲——初识SLAM
    MySQL数据库性能分析与调优实践
  • 原文地址:https://blog.csdn.net/weixin_42118352/article/details/126033134