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

How do I add a border after inserting an image or a hyperlink on xlswriter

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

 #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,
        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
        }
    )

以及如何在插入 link 后为单元格添加完整边框?

worksheet.write_url(row, 2,  prod.product.link, 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', 'http://www.python.org/', link_format, "String 1")

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

workbook.close()

输出:

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