Python openpyxl 数据帧数据写入Excel并清除工作表内容

2024-04-28 11:50:36 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是支持在xlsx工作表中追加数据的代码。在

import pandas as pd from openpyxl import load_workbook from openpyxl.utils.dataframe
import dataframe_to_rows

wb = load_workbook('./test.xlsx')
ws = wb['Sheet1'] 
df = pd.DataFrame({'Data': [11, 20, 30, 20, 15, 30, 45]}) 
for r in dataframe_to_rows(df):
        ws.append(r) 
wb.save("test.xlsx")
  1. 这是在每次运行代码时追加数据,数据也是从第2行开始的;为什么excel数据不是从(0,0)开始的手机。我的要求从(0,0)更新数据

  2. 因为使用了append,所以每次函数打电话来了。我的要求是清除此表(仅删除表1的内容)并添加从0,0个单元格开始的数据帧数据。这是实现1和2要求的代码。 (我不想在此操作期间覆盖sheet2和其他工作表内容)

我们非常感谢您的帮助。在


Tags: to数据代码fromtestimportdataframews
2条回答

似乎dataframe_to_rows调用正在添加一个额外的空行,这就是为什么您看到一个额外的行

>>> df
   Data
0    11
1    20
2    30
3    20
4    15
5    30
6    45
>>> 
>>> print( [*dataframe_to_rows(df)] )
[[None, 'Data'], FrozenList([None]), [0, 11], [1, 20], [2, 30], [3, 20], [4, 15], [5, 30], [6, 45]]
>>> 

是否确实要使用openpyxl。如果没有,你可以很容易地做到以下几点

^{pr2}$

Why the excel data not starting from (0,0) cell.

因为工作表类的the ^{} method

Appends a group of values at the bottom of the current sheet.

换句话说,这个方法找到下一个可用/空行,并将数据转储到那里,这是有意义的。您还希望append方法如何工作?list.append不写入项0,它将一个新成员添加到列表。与worksheet.append方法的想法相同。在

要先清除现有单元格,请尝试:

How to clear a range of values in an Excel workbook using OpenPyXl

相关问题 更多 >