使用xlsxwriter添加外边框

问题描述 投票:2回答:1

我有一个数据框,我想设置外边框。我尝试了以下代码,但它为'A1:I83'范围内的每个单元格添加了边框。我只想添加外边框:

border_format=workbook.add_format({
                            'border':1,
                            'align':'left',
                            'font_size':10
                           })
worksheet_rating_input.conditional_format('A1:I83' , { 'type' : 'no_blanks' , 'format' : border_format})
python-3.x xlsxwriter
1个回答
1
投票

你能做到的一种方法是设置J1到J183的格式,左边框很粗,将A184的格式设置为I184,以便有一个粗的顶边框。

我在下面发布了一个完全可重现的例子。在我的例子中,我使用df.shape来设置依赖于我的数据帧的维度的边框。

import xlsxwriter
import pandas as pd
import numpy as np

# Creating a dataframe 
df = pd.DataFrame(np.random.randn(182, 9), columns=list('ABCDEFGHI'))
column_list = df.columns
# Create a Pandas Excel writer using XlsxWriter engine.
writer = pd.ExcelWriter("test.xlsx", engine='xlsxwriter')

df.to_excel(writer, index=False)

workbook  = writer.book
worksheet = writer.sheets['Sheet1']

leftFormat = workbook.add_format({'left': 5})
topFormat = workbook.add_format({'top': 5})

for row in range(0, df.shape[0] + 1):
    worksheet.write(row, df.shape[1], '', leftFormat)

for col in range(0, df.shape[1]):
    worksheet.write(df.shape[0] + 1, col, '', topFormat)

worksheet.freeze_panes(1, 0) #freezing top row 

writer.save() 

预期输出:

Expected Output

© www.soinside.com 2019 - 2024. All rights reserved.