Mic*_*nek 4 python excel pandas xlsxwriter
我正在使用xlsxwriter引擎通过pandas.to_excel()将一些数据帧推入excel工作表,但是我需要在每个表上方添加标题。
我没有看到任何方法使用熊猫的ExcelWriter对象来简单地操纵每个单元格的内容,当我尝试这样做时,我得到了:
例外:忽略大小写的图纸名称“样本”已在使用中。
我猜xlsxwriter会自行锁定。这是一个例子:
xlsx_writer = pd.ExcelWriter(
get_target_filepath(xlsx_name),
engine='xlsxwriter'
)
workbook = xlsx_writer.book
worksheet = workbook.add_worksheet(sheet_name)
worksheet.write(1, 1, 'ABC')
_, sample_table = dataframe_tuples[0]
sample_table.to_excel(xlsx_writer, startrow=3, startcol=2, sheet_name=sheet_name)
Run Code Online (Sandbox Code Playgroud)
我可以保存数据帧,然后再用openpyxl进行遍历,但是我严重不喜欢它们进行格式化的方式,这是我下一步要做的。如果我在xlsxwriter中对其进行格式化,然后再用openpyxl将其重新打开,则无法正确保存格式,openpyxl破坏了它。
我不能将excel本身放在服务器上以使用VBA宏进行样式设置。
有什么办法可以解决这个问题,还是我只是做错了什么?
您可以通过从熊猫获取工作表引用并在其上调用标准XlsxWriter方法来进行以下操作。像这样:
import pandas as pd
# Create some Pandas dataframes from some data.
df1 = pd.DataFrame({'Data': [11, 12, 13, 14]})
df2 = pd.DataFrame({'Data': [21, 22, 23, 24]})
# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_example.xlsx', engine='xlsxwriter')
# Position the dataframes in the worksheet.
df1.to_excel(writer, sheet_name='Sheet1', index=False, startrow=2)
df2.to_excel(writer, sheet_name='Sheet1', index=False, startrow=9)
# Get the worksheet object.
worksheet = writer.sheets['Sheet1']
# Write some titles above the dataframes.
worksheet.write(1, 0, 'Some random title 1')
worksheet.write(8, 0, 'Some random title 2')
# Close the Pandas Excel writer and output the Excel file.
writer.save()
Run Code Online (Sandbox Code Playgroud)
另请参阅使用Python Pandas和XlsxWriter。
输出:
归档时间: |
|
查看次数: |
839 次 |
最近记录: |