我正在尝试使用python xlsxwriter将空的excel工作表添加到现有的Excel文件中。
按如下所示设置公式效果很好。
workbook = xlsxwriter.Workbook(file_name)
worksheet_cover = workbook.add_worksheet("Cover")
Output4 = workbook
Output4.close()
但是一旦我尝试向Excel中添加带有数据框的其他工作表,它将覆盖以前的excel:
with pd.ExcelWriter('Luther_April_Output4.xlsx') as writer:
data_DifferingRates.to_excel(writer, sheet_name='Differing Rates')
data_DifferingMonthorYear.to_excel(writer, sheet_name='Differing Month or Year')
data_DoubleEntries.to_excel(writer, sheet_name='Double Entries')
我应该如何编写代码,以便可以将空白表和现有数据框添加到现有的excel文件中。
或者,一旦我生成了Excel文件,回答一下如何切换引擎将很有帮助...
感谢您的帮助!
答案 0 :(得分:0)
您可以将pandas.ExcelWriter
与可选的mode='a'
参数一起使用,以附加到现有的Excel工作簿中。
您还可以将其附加到现有的Excel文件中:
>>> with ExcelWriter('path_to_file.xlsx', mode='a') as writer:`
... df.to_excel(writer, sheet_name='Sheet3')`
不幸的是,这需要使用其他引擎,因为您观察到ExcelWriter
不支持可选的mode='a'
(附加)。如果尝试将此参数传递给构造函数,it raises an error。
因此,您将需要使用其他引擎来执行附加操作,例如openpyxl。您需要确保已安装该软件包,否则将收到“找不到模块”错误。我已经测试过使用openpyxl
作为引擎,并且能够将新的工作表追加到现有工作簿中:
with pd.ExcelWriter(engine='openpyxl', path='Luther_April_Output4.xlsx', mode='a') as writer:
data_DifferingRates.to_excel(writer, sheet_name='Differing Rates')
data_DifferingMonthorYear.to_excel(writer, sheet_name='Differing Month or Year')
data_DoubleEntries.to_excel(writer, sheet_name='Double Entries')
答案 1 :(得分:0)
如果您没有被迫使用\documentclass{beamer}
\usepackage[style=authoryear]{biblatex}
\usepackage{filecontents}
\begin{filecontents*}{\jobname.bib}
@book{knuth,
author = {Knuth, Donald E.},
title = {The {\TeX} book},
date = 1984,
maintitle = {Computers \& Typesetting},
volume = {A},
publisher = {Addison-Wesley},
location = {Reading, Mass.},
langid = {english},
langidopts = {variant=american},
sortyear = {1984-1},
sorttitle = {Computers & Typesetting A},
indexsorttitle= {The TeXbook},
indextitle = {\protect\TeX book, The},
shorttitle = {\TeX book}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\begin{document}
\begin{frame}
test\footcite{knuth}
test\footnotemark[1]
\end{frame}
\end{document}
,请尝试使用openpyxl
。只需为内置ExcelWriter
类的xlsxwriter
传递'openpyxl'作为引擎。我在why this works上问过一个问题。这是有用的代码。它可以与pandas
的语法一起很好地工作,并且不会覆盖您已经存在的工作表。
pd.to_excel()