pandas.ExcelWriter # 熊猫类 。ExcelWriter (路径,引擎=无, date_format = None , datetime_format = None , mode = 'w' , storage_options = None , if_sheet_exists = None , engine_kwargs = None ) [来源] # 用于将 DataFrame 对象写入 Excel 工作表的类。 默认是使用: xlsxwriter用于 xlsx 文件(如果安装了 xlsxwriter),否则openpyxl odswriter用于 ods 文件 请DataFrame.to_excel参阅典型用法。 作者应该被用作上下文管理器。否则,调用close()保存并关闭所有打开的文件句柄。 参数: 路径str 或打字.BinaryIOxls 或 xlsx 或 ods 文件的路径。 发动机强度(可选)用于写入的引擎。如果没有,则默认为 io.excel.<extension>.writer.注意:只能作为关键字参数传递。 date_format str,默认无写入 Excel 文件的日期格式字符串(例如“YYYY-MM-DD”)。 datetime_format str,默认无写入 Excel 文件的日期时间对象的格式字符串。 (例如“YYYY-MM-DD HH:MM:SS”)。 模式{'w', 'a'}, 默认 'w'要使用的文件模式(写入或追加)。附加不适用于 fsspec URL。 storage_options字典,可选对于特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于 HTTP(S) URL,键值对将urllib.request.Request作为标头选项转发。对于其他 URL(例如以“s3://”和“gcs://”开头),键值对将转发到fsspec.open。请参阅fsspec和urllib了解更多详细信息,有关存储选项的更多示例,请参阅此处。 if_sheet_exists {'error', 'new', 'replace', 'overlay'}, 默认 'error'尝试写入已存在的工作表时的行为方式(仅限追加模式)。 错误:引发 ValueError。 new:创建一个新工作表,名称由引擎确定。 替换:在写入之前删除工作表的内容。 覆盖:将内容写入现有工作表,而不首先删除现有内容,但可能会覆盖现有内容。 1.3.0 版本中的新增功能。 版本 1.4.0 中更改:添加了overlay选项 engine_kwargs字典,可选要传递到引擎中的关键字参数。这些将被传递到各个引擎的以下功能: xlsx作者:xlsxwriter.Workbook(file, **engine_kwargs) openpyxl(写入模式):openpyxl.Workbook(**engine_kwargs) openpyxl(追加模式):openpyxl.load_workbook(file, **engine_kwargs) ods编写者:odf.opendocument.OpenDocumentSpreadsheet(**engine_kwargs) 1.3.0 版本中的新增功能。 笔记 为了与 CSV 编写器兼容,ExcelWriter 在写入之前将列表和字典序列化为字符串。 例子 默认用法: >>> df = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"]) >>> with pd.ExcelWriter("path_to_file.xlsx") as writer: ... df.to_excel(writer) 要写入单个文件中的单独工作表: >>> df1 = pd.DataFrame([["AAA", "BBB"]], columns=["Spam", "Egg"]) >>> df2 = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"]) >>> with pd.ExcelWriter("path_to_file.xlsx") as writer: ... df1.to_excel(writer, sheet_name="Sheet1") ... df2.to_excel(writer, sheet_name="Sheet2") 您可以设置日期格式或日期时间格式: >>> from datetime import date, datetime >>> df = pd.DataFrame( ... [ ... [date(2014, 1, 31), date(1999, 9, 24)], ... [datetime(1998, 5, 26, 23, 33, 4), datetime(2014, 2, 28, 13, 5, 13)], ... ], ... index=["Date", "Datetime"], ... columns=["X", "Y"], ... ) >>> with pd.ExcelWriter( ... "path_to_file.xlsx", ... date_format="YYYY-MM-DD", ... datetime_format="YYYY-MM-DD HH:MM:SS" ... ) as writer: ... df.to_excel(writer) 您还可以附加到现有的 Excel 文件: >>> with pd.ExcelWriter("path_to_file.xlsx", mode="a", engine="openpyxl") as writer: ... df.to_excel(writer, sheet_name="Sheet3") 在这里,可以设置if_sheet_exists参数来替换已存在的工作表: >>> with ExcelWriter( ... "path_to_file.xlsx", ... mode="a", ... engine="openpyxl", ... if_sheet_exists="replace", ... ) as writer: ... df.to_excel(writer, sheet_name="Sheet1") 您还可以将多个 DataFrame 写入单个工作表。请注意,该 if_sheet_exists参数需要设置为overlay: >>> with ExcelWriter("path_to_file.xlsx", ... mode="a", ... engine="openpyxl", ... if_sheet_exists="overlay", ... ) as writer: ... df1.to_excel(writer, sheet_name="Sheet1") ... df2.to_excel(writer, sheet_name="Sheet1", startcol=3) 您可以将 Excel 文件存储在 RAM 中: >>> import io >>> df = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"]) >>> buffer = io.BytesIO() >>> with pd.ExcelWriter(buffer) as writer: ... df.to_excel(writer) 您可以将 Excel 文件打包到 zip 存档中: >>> import zipfile >>> df = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"]) >>> with zipfile.ZipFile("path_to_file.zip", "w") as zf: ... with zf.open("filename.xlsx", "w") as buffer: ... with pd.ExcelWriter(buffer) as writer: ... df.to_excel(writer) 您可以为底层引擎指定其他参数: >>> with pd.ExcelWriter( ... "path_to_file.xlsx", ... engine="xlsxwriter", ... engine_kwargs={"options": {"nan_inf_to_errors": True}} ... ) as writer: ... df.to_excel(writer) 在附加模式下,engine_kwargs传递到 openpyxl 的load_workbook: >>> with pd.ExcelWriter( ... "path_to_file.xlsx", ... engine="openpyxl", ... mode="a", ... engine_kwargs={"keep_vba": True} ... ) as writer: ... df.to_excel(writer, sheet_name="Sheet2") 属性 book 书籍实例。 date_format 写入 Excel 文件的日期格式字符串(例如“YYYY-MM-DD”)。 datetime_format 写入 Excel 文件的日期格式字符串(例如“YYYY-MM-DD”)。 engine 发动机名称。 if_sheet_exists 写入已处于追加模式的工作表时的行为方式。 sheets 将工作表名称映射到工作表对象。 supported_extensions 编写器引擎支持的扩展。 方法 check_extension(分机) 根据 Writer 支持的扩展名检查该路径的扩展名。 close() 保存的同义词,使其更像文件