python:xlsxwriter将数据框+公式添加到excel文件

Posted

技术标签:

【中文标题】python:xlsxwriter将数据框+公式添加到excel文件【英文标题】:python: xlsxwriter adding dataframe + formula to excel file 【发布时间】:2020-11-23 20:59:48 【问题描述】:

我发现了将数据框和公式写入 excel 文件的不同方法。

import pandas as pd
import numpy as np
import xlsxwriter

# Method 1
writer = pd.ExcelWriter('example.xlsx', engine='xlsxwriter')
A = pd.DataFrame(np.array([[1,2,3],[4,5,6],[7,8,9]]))
A.to_excel(writer , sheet_name='Sheet1')
writer.save()

# Method 2
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()
worksheet.write_formula('B5' , '=_xlfn.STDEV.S(B3:B5)')
workbook.close()

一个用于添加数据框,另一个用于公式。问题:方法2删除了使用方法1写入文件的内容。如何合并它们?

【问题讨论】:

【参考方案1】:

如果您想将这两个操作合二为一,这是一种方法:

import pandas as pd
import numpy as np
import xlsxwriter

# Method 1
writer = pd.ExcelWriter('example.xlsx', engine='xlsxwriter')
A = pd.DataFrame(np.array([[1,2,3],[4,5,6],[7,8,9]]))
A.to_excel(writer , sheet_name='Sheet1')

# Get the xlsxwriter objects from the dataframe writer object.
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

# Write the formula.
worksheet.write_formula('B5' , '=_xlfn.STDEV.S(B2:B4)')

# Or Create a new worksheet and add the formula there.
worksheet = workbook.add_worksheet()
worksheet.write_formula('B5' , '=_xlfn.STDEV.S(Sheet1!B2:B4)')

writer.save()

输出

请参阅 XlsxWriter 文档的 Working with Python Pandas and XlsxWriter 部分。

注意,我更正了公式的范围以避免循环引用。

【讨论】:

以上是关于python:xlsxwriter将数据框+公式添加到excel文件的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 和 XLSXWriter 将格式应用于多个 Excel 工作表

python模块XlsxWriter

python模块之XlsxWriter

python xlsxwriter库生成图表的应用

ModuleNotFoundError:databricks 中没有名为“xlsxwriter”的模块

根据值合并行(熊猫到 excel - xlsxwriter)