Export Multiple Pandas DataFrames to a single Excel sheet
Two ways to stack several DataFrames onto one worksheet. Either concatenate them in pandas first and write once, or write each in turn through ExcelWriter and use startrow to offset the next one below the last. The second keeps them visually separate.
Load Data
First, let’s import the necessary libraries and load some sample data. It’s important to note that Pandas relies on the optional dependency ‘openpyxl’ when dealing with Excel files. Make sure to install it by running:
pip install openpyxl

Option 1
The first and simplest way to write multiple DataFrames to a single sheet is by using the ExcelWriter object. This allows you to manage the writing process easily. Here’s how to do it:
- Use a context manager to create an instance of ExcelWriter.
- Call the to_excel method on each DataFrame, specifying the writer object and the sheet name.
- By default, this will export the DataFrame starting at cell A1, but you can also specify additional parameters like starting rows and columns.
Once you execute this code, you’ll find a new spreadsheet in your specified folder containing all the DataFrames in Sheet1.

However, there’s a caveat: this method will overwrite any existing workbook. So if you have an Excel file that you want to append data to, this won’t work. Initially, I thought using the mode argument with append would solve this, but it didn’t.
Option 2
This brings us to the second option, which utilizes another package called xlwings. This package allows for more flexibility and works well with existing Excel files. You can install xlwings by running:
pip install xlwings

After importing xlwings as xw, you can adjust parameters like the output path, sheet name, and the mapping of DataFrames. For instance:
- Export df1 to cell A1,
- df2 to K1,
- and the last DataFrame to K5.
With these settings, you can open an Excel instance in the background and load the existing workbook. You’ll check if the output sheet already exists; if not, create it. Afterward, iterate over your DataFrames and export them to the specified cells.

Finally, ensure you save the workbook to retain the changes. After executing this method, you will see two worksheets in your Excel file, one from the first method and another from the xlwings approach.
Conclusion
And that’s it! You now know how to export multiple DataFrames to a single Excel sheet using both the ExcelWriter and xlwings methods. This can greatly simplify your data management tasks.
Thank you for following along, and I hope you find these methods useful for your data analysis projects!
