23

我想将一些记录添加到 excel 文件中,我用它pandas.ExcelWriter来执行此操作(http://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.ExcelWriter.html?highlight=excelwriter#pandas.ExcelWriter ):

import pandas as pd                                                     

df = pd.DataFrame(data={'a':[4], 'b':['corn'], 'c':[0.5]})              

with pd.ExcelWriter("test.xlsx", mode='a') as writer: 
            df.to_excel(writer) 

a, b, c 是 test.xlsx 的标题名称

运行此程序,引发 valueError:

ValueError                                Traceback (most recent call last)
<ipython-input-3-c643d22b4217> in <module>
----> 1 with pd.ExcelWriter("test.xlsx", mode='a') as writer:
      2     df.to_excel(writer)
      3 

~/anaconda/lib/python3.6/site-packages/pandas/io/excel.py in __init__(self, path, engine, date_format, datetime_format, mode, **engine_kwargs)
   1935 
   1936         if mode == 'a':
-> 1937             raise ValueError('Append mode is not supported with xlsxwriter!')
   1938 
   1939         super(_XlsxWriter, self).__init__(path, engine=engine,

ValueError: Append mode is not supported with xlsxwriter!

我不知道为什么?

4

5 回答 5

40

试试这个:

with pd.ExcelWriter("existing_file_name.xlsx", engine="openpyxl", mode="a") as writer:
    df.to_excel(writer, sheet_name="name", startrow=num, startcol=num)

您需要将引擎指定为“openpyxl”。

于 2019-04-22T06:23:29.880 回答
6

尝试将“引擎”指定为 openpyxl:

with pd.ExcelWriter("test.xlsx", engine='openpyxl', mode='a') as writer:
    df.to_excel(writer)
于 2019-04-15T06:01:33.687 回答
3

正如回溯所说,ValueError: Append mode is not supported with xlsxwriter!

我无法回答您的问题,为什么,这是 Pandas 开发人员的决定。

但是我能够使您的用例与 Pandas 0.24 和openpyxl

df = pd.DataFrame(data={'a':[4], 'b':['corn'], 'c':[0.5]})              

with pd.ExcelWriter("test.xlsx", mode='a') as writer: 
            df.to_excel(writer) 
于 2019-02-25T10:15:54.710 回答
1

解决了它,在模式中使用大写 A,就可以了!

    import pandas as pd                                                     

    df = pd.DataFrame(data={'a':[4], 'b':['corn'], 'c':[0.5]})              

    with pd.ExcelWriter("test.xlsx", mode='A') as writer: 
        df.to_excel(writer)
于 2020-06-03T18:33:09.550 回答
0

嗯,我很确定你不能使用 xlsxwriter 将函数附加到现有的 xlsx 文件,因为 xlsxwriter 库仅用于编写 excel 文件

在 Github 上查看问题

因此您可以使用 openpyxl 或更好地编写程序来执行此功能..

但是如果您查看此库中的代码,它只是在写入最终文件之前在临时环境中读取文件,它不是真正的附加...

于 2019-02-25T10:11:00.403 回答