Python 标题的样式
我想使用Python 标题的样式,python,pandas,openpyxl,Python,Pandas,Openpyxl,我想使用pandas(或者openpyxl,如果无法使用pandas,则使用openpyxl)调整此代码的大小并加粗Title)。有没有一种方法可以做到准确和“肾盂法” 我知道我们可以使用,但我不知道如何在我的代码中使用它 更新 根据@AndyHayden的说法,通常下面的代码应该加粗标题,但这似乎不起作用 def multiple_dfs(file_name, sheet, *args): """ Put multiple dataframes into on
pandas
(或者openpyxl
,如果无法使用pandas
,则使用openpyxl
)调整此代码的大小并加粗Title
)。有没有一种方法可以做到准确和“肾盂法”
我知道我们可以使用,但我不知道如何在我的代码中使用它
更新
根据@AndyHayden的说法,通常下面的代码应该加粗标题,但这似乎不起作用
def multiple_dfs(file_name, sheet, *args):
"""
Put multiple dataframes into one xlsx sheet
"""
row=2
writer = pd.ExcelWriter(file_name, engine='openpyxl')
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
df2 = pd.DataFrame(['Title'])
df.to_excel(writer, sheet, startrow=row, index=False)
df2.to_excel(writer, sheet, startrow=0, startcol=0, header=None, \
index=False)
标题从未以粗体显示。我怎样才能解决这个问题
如果问题不清楚,请告诉我。此报价提供了一种简洁的方法:
import pandas as pd
import io, os, openpyxl
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.styles import (PatternFill, Border, Side, Alignment, Protection, Font)
def multiple_dfs(sheet):
row=2
writer = pd.ExcelWriter("testing.xlsx", engine='openpyxl')
df = pd.DataFrame(['Title'])
df2 = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
df.to_excel(writer, sheet, startrow=0, startcol=0, header=None, \
index=False)
df2.to_excel(writer, sheet, startrow=row, index=False)
wb = Workbook()
ws = wb.active
for r in dataframe_to_rows(df, index=False, header=False):
ws.append(r)
title = ws["A1"]; title.font = Font(bold=True)
wb.save("testing.xlsx")
writer.save()
writer.close()
multiple_dfs('aaa')
注意:如果您事先正在执行其他插入操作(就像你在上一个问题中建议的那样,你必须使用不同的行号。假设
文件名
被称为NHL\u databases.xlsx
。你能用它修改你的代码吗。@J.Doe用NHL\u databases.xlsx替换pandas\u openpyxl.xlsx吗?好的,这很好,但为什么我的标题不加粗?你能修复它还是只适合它我的问题代码与您的答案代码?@J.Doe因此,您可以执行类似于title=ws[“A1”];title.font=font(bold=True)的操作
。我不知道它是如何工作的……很抱歉,我很早就开始用python编程了。to\u excel和wb.save会相互混淆,如果你正在设计样式,我建议不要使用to\u excel,而是使用dataframe\u to\u rows片段。@而且我已经花了一段时间来编写它。你能修改我的代码使其工作吗?这非常困难d对我来说,因为我所有真正的代码都是使用pandas
和到excel
。
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
wb = Workbook()
ws = wb.active
for r in dataframe_to_rows(df, index=True, header=True):
ws.append(r)
for cell in ws['A'] + ws[1]:
cell.style = 'Pandas'
wb.save("pandas_openpyxl.xlsx")