【问题标题】:Writing Pandas Data Frame live to Excel file (.XLSX) using xlwings使用 xlwings 将 Pandas 数据框实时写入 Excel 文件 (.XLSX)
【发布时间】:2023-03-15 11:02:01
【问题描述】:

我必须使用从 CSV 文件中读取的 pandas 数据框实时更新 excel 文件。

以下是我的 CSV 文件。我正在 pandas 的帮助下阅读 CSV,但我不知道如何将其放入 Excel 文件中。

提前致谢!

【问题讨论】:

  • 你可以使用其他模块还是必须使用xlwings?
  • @A.Wolf 不,这不是强制性的。请推荐一些其他模块。
  • 把数据写入文件就够了?我的意思是,您必须关闭文件才能看到修改。我不认为你可以动态修改它,而不关闭它。
  • @A.Wolf 我不想关闭我的文件。文件应该保持打开状态,我应该能够看到数据正在更新。
  • 简单的方法是使用pandas方法DF.to_excel("Output_file.xlsx")

标签: python excel pandas xlwings


【解决方案1】:

我认为你不能这样做。例如,请参阅 this,它表示 Excel 可以处理文档的副本。

要将数据框写入 Excel 文件,您可以使用 pandas to_excel() 方法,如下所示:

your_dataframe.to_excel(output.xlsx')

xlwt 是一个很好的与 Excel 一起工作的模块。您可以查看this tutorial,它通过许多示例解释了如何使用它。

【讨论】:

  • 我已经在使用 openpyxl 将数据放入 Excel 文件,并且我也在使用这个“df.to_excel(writer, sheet_name, startrow=startrow, **to_excel_kwargs, header=True)”来放入数据框架到 excel 文件中,但问题是当我打开 Excel 文件时,我看不到实时更新的数据。
  • 好的 :) 我添加了我认为可以帮助你的第一个链接,我认为你不能这样做。
【解决方案2】:

我假设您不太关心速度,因为更新是实时发生的并且对用户可见。我能想到的实现这一点的方法是通过win32com 包在Windows 上的Python 中使用用于com 对象的win32 api。为了与其他对象通信,我们通常需要 win32com.client 包。

使用这个,写一本打开的 excel 书是相当直接的:

import win32com.client as win32

filename = "book.xlsx"

# Get a handle to excel:
excel = win32.gencache.EnsureDispatch('Excel.Application')
# Find open workbook with "filename" (which is the base name only)
wb = excel.Workbooks(filename)
# Set active sheet
ws = wb.Worksheets(1)

# We can access a single cell with "Cells":
ws.Cells(1,1).Value = "A1"
# Or multiple cells with a "Range" (note the strange tuple format of values)
ws.Range("C1:C3").Value =[("C1",), ("C2",), ("C3",)]

这个例子应该是相当简单的,你可以用它来将你的pandasdata 写入excel。但是,它需要您“手动”循环遍历不同的单元格并将它们写入 excel 文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-24
    • 1970-01-01
    • 2021-01-17
    • 2015-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多