亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 xlsxwriter 僅格式化帶有數據的標題

使用 xlsxwriter 僅格式化帶有數據的標題

繁星點點滴滴 2022-01-18 17:22:45
worksheet.set_row()通過使用僅應用于包含數據的列來獲取格式時我遇到了一些麻煩。就目前而言,當我打開工作簿時,格式會應用于整個標題行,甚至超過數據停止的位置,這看起來有點草率,見下文:如您所見,格式繼續到列 AL、AM、AN、AO 等...由于這些列(或與此有關的標題)中沒有數據,因此看起來有點草率。我以前使用以下內容將格式應用于工作簿中的每個工作表:header = workbook.add_format({'bold': True, 'bottom': 2, 'bg_color': '#F9DA04'})worksheet.set_row(0, None, header)我知道這是因為worksheet.set_row()使用行索引。我找不到任何關于這個范圍的文檔,我可以以某種方式指定A1:AK1或類似的東西嗎?如果重要的話,每個工作表都是pd.concat()使用 Pandas 的多個數據框的結果。
查看完整描述

1 回答

?
神不在的星期二

TA貢獻1963條經驗 獲得超6個贊

如您所見,格式繼續到 AL、AM、AN、AO 等列。


這就是行格式在 Excel 中的工作方式。如果將其應用于一行,則所有單元格都會被格式化。


我可以以某種方式指定 A1:AK1 或類似的東西嗎?


如果您只想格式化某些單元格,那么最好將格式僅應用于這些單元格。例如:


import xlsxwriter


workbook = xlsxwriter.Workbook('test.xlsx')

worksheet = workbook.add_worksheet()


header_data = ['EID', 'Notification', 'Test #']


header_format = workbook.add_format({'bold': True,

                                     'bottom': 2,

                                     'bg_color': '#F9DA04'})


for col_num, data in enumerate(header_data):

    worksheet.write(0, col_num, data, header_format)


workbook.close()

輸出:

http://img1.sycdn.imooc.com//61e6870a000116b404990387.jpg

如果重要的話,每個工作表都是使用 Pandas 的多個數據幀的 pd.concat() 的結果。


有關如何從數據幀格式化標頭的示例,請參見 XlsxWriter文檔中的此示例:


import pandas as pd


# Create a Pandas dataframe from the data.

df = pd.DataFrame({'Data1': [10, 20, 30, 20],

                   'Data2': [10, 20, 30, 20],

                   'Data3': [10, 20, 30, 20],

                   'Data4': [10, 20, 30, 20]})


# Create a Pandas Excel writer using XlsxWriter as the engine.

writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')


# Turn off the default header and skip one row to allow us to insert a

# user defined header.

df.to_excel(writer, sheet_name='Sheet1', startrow=1, header=False)


# Get the xlsxwriter workbook and worksheet objects.

workbook  = writer.book

worksheet = writer.sheets['Sheet1']


# Add a header format.

header_format = workbook.add_format({'bold': True,

                                     'bottom': 2,

                                     'bg_color': '#F9DA04'})


# Write the column headers with the defined format.

for col_num, value in enumerate(df.columns.values):

    worksheet.write(0, col_num + 1, value, header_format)


# Close the Pandas Excel writer and output the Excel file.

writer.save()

輸出:

http://img1.sycdn.imooc.com//61e687150001bb0005250391.jpg

查看完整回答
反對 回復 2022-01-18
  • 1 回答
  • 0 關注
  • 303 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號