使用python将格式添加到dataframe并插入excel?
我必须在excel中插入一个带边框的数据库,并且数据框中的所有值都应该居中。我尝试对单元格进行格式化,但不起作用使用python将格式添加到dataframe并插入excel?,python,pandas,xlsxwriter,openxlsx,Python,Pandas,Xlsxwriter,Openxlsx,我必须在excel中插入一个带边框的数据库,并且数据框中的所有值都应该居中。我尝试对单元格进行格式化,但不起作用 df1.to_excel(writer,index=False,header=True,startrow=12,sheet_name='Sheet1') writer.close() writer=pd.ExcelWriter(s, engine="xlsxwriter") writer.book = load_workbook(s)
df1.to_excel(writer,index=False,header=True,startrow=12,sheet_name='Sheet1')
writer.close()
writer=pd.ExcelWriter(s, engine="xlsxwriter")
writer.book = load_workbook(s)
workbooks= writer.book
worksheet = workbooks['Sheet1']
f1= workbooks.add_format()
worksheet.conditional_format(12,0,len(df1)+1,7,{'format':f1})
你能帮我做这个吗
我不会撒谎:我现在是第一次这样做,所以这可能不是一个很好的解决方案。我使用的是
openpyxl
,因为它比XlsxWriter
更灵活。我希望你也能使用它
我的假设是变量file\u name
包含有效的文件名
第一步:
with pd.ExcelWriter(file_name, engine='xlsxwriter') as writer:
df1.to_excel(writer, index=False, header=True, startrow=12, sheet_name='Sheet1')
然后从openpyxl
进行必要的导入:
from openpyxl import load_workbook
from openpyxl.styles import NamedStyle, Alignment, Border, Side
加载工作簿并选择工作表:
wb = load_workbook(file_name)
ws = wb['Sheet1']
定义所需的样式:
centered_with_frame = NamedStyle('centered_with_frame')
centered_with_frame.alignment = Alignment(horizontal='center')
bd = Side(style='thin')
centered_with_frame.border = Border(left=bd, top=bd, right=bd, bottom=bd)
选择相关单元格:
cells = ws[ws.cell(row=12+1, column=1).coordinate:
ws.cell(row=12+1+df1.shape[0], column=df1.shape[1]).coordinate]
将定义的样式应用于选定的单元格:
for row in cells:
for cell in row:
cell.style = centered_with_frame
最后保存工作簿:
wb.save(file_name)
正如我所说:这可能不是最优的。我不会撒谎:我现在是第一次这样做,所以这可能不是一个很好的解决方案。我使用的是
openpyxl
,因为它比XlsxWriter
更灵活。我希望你也能使用它
我的假设是变量file\u name
包含有效的文件名
第一步:
with pd.ExcelWriter(file_name, engine='xlsxwriter') as writer:
df1.to_excel(writer, index=False, header=True, startrow=12, sheet_name='Sheet1')
然后从openpyxl
进行必要的导入:
from openpyxl import load_workbook
from openpyxl.styles import NamedStyle, Alignment, Border, Side
加载工作簿并选择工作表:
wb = load_workbook(file_name)
ws = wb['Sheet1']
定义所需的样式:
centered_with_frame = NamedStyle('centered_with_frame')
centered_with_frame.alignment = Alignment(horizontal='center')
bd = Side(style='thin')
centered_with_frame.border = Border(left=bd, top=bd, right=bd, bottom=bd)
选择相关单元格:
cells = ws[ws.cell(row=12+1, column=1).coordinate:
ws.cell(row=12+1+df1.shape[0], column=df1.shape[1]).coordinate]
将定义的样式应用于选定的单元格:
for row in cells:
for cell in row:
cell.style = centered_with_frame
最后保存工作簿:
wb.save(file_name)
正如我所说:这可能不是最优的。谢谢你的回复,但我是通过直接将格式应用于数据帧来实现的,因为add_format()[ATTRIBUTE error]有一些错误。谢谢你的回复,但我是通过直接将格式应用于数据帧来实现的,因为add_format()[ATTRIBUTE error]有一些错误