在xlswriter上插入图像或超链接后如何添加边框

问题描述

我正在将xlswriter用于Django。我不确定在插入图像或超链接后如何添加完整边框。请记住,两个代码都在循环中。

 #set cell border format
 full_border = workbook.add_format(
     {
         'border': 1,#border size
         'border_color': '#000000' #color black
     }
 )


 #for the rest of the table
 row = 4
 column = 1

 for prod in users_fav_products:

    image_url = prod.product.image
    data = urllib.request.urlopen(image_url).read()
    image_name = f'favoriteproduct{row}'
    file = open(image_name,"wb")
    file.write(data)
    file.close()
    worksheet.insert_image(
        row,column,image_name,{
            'x_scale': 0.5,'y_scale': 0.5,'x_offset': 5,'y_offset': 5,'positioning': 1,'border': 1,# border size
            'border_color': '#000000'  # color black
        }
    )
    worksheet.write_url(row,2,prod.product.link,string=prod.product.name)
    worksheet.write(row,3,prod.product.reviews,full_border)
    worksheet.write(row,4,prod.product.price,full_border)
    row +=1

那么在插入图像后如何在单元格中添加完整边框?

        worksheet.insert_image(
        row,# border size
            'border_color': '#000000'  # color black
        }
    )

在插入链接后如何在单元格中添加完整边框?

worksheet.write_url(row,string=prod.product.name)

解决方法

关于问题的第一部分,您无法使用XlsxWriter格式化图像的边框。

关于问题的第二部分,您可以在超链接单元格周围添加边框,如下所示:

import xlsxwriter

workbook = xlsxwriter.Workbook('hyperlink.xlsx')
worksheet = workbook.add_worksheet()

# Widen the column for clarity.
worksheet.set_column('B:B',30)

# Add a sample alternative link format.
link_format = workbook.add_format({
    'font_color': 'blue','underline': 1,'border': 1,})

# Write the link.
worksheet.write_url('B2','http://www.python.org/',link_format)

# Write the link with a string alternative.
worksheet.write_url('B3',link_format,"String 1")

# Same as the previous example with named arguments.
worksheet.write_url('B4',string="String 2",cell_format=link_format)

workbook.close()

输出

enter image description here

请参阅worksheet.write_url()上的文档。