Home » excel » Python Excel Writer (xlswriter) Insert Image from URL

Python Excel Writer (xlswriter) Insert Image from URL

Posted by: admin May 14, 2020 Leave a comment

Questions:

How can I insert an image from URL (http) with xlswriter? This is from documentation:

worksheet.insert_image('B2', 'python.png')

or

worksheet1.insert_image('B10', '../images/python.png')

But this is only for file path. I want to add image from URL from a Web Server. Can you help?

How to&Answers:
url = "http://abcdef.com/picture.jpg"
data = urllib.request.urlopen(url).read()
file = open("image.jpg", "wb")
file.write(data)
file.close()
worksheet.insert_image('B2', 'image.jpg')

Answer:

# Read an image from a remote url.
url = 'https://raw.githubusercontent.com/jmcnamara/XlsxWriter/' + \
      'master/examples/logo.png'

image_data = BytesIO(urllib2.urlopen(url).read())

# Write the byte stream image to a cell. Note, the filename must be
# specified. In this case it will be read from url string.
worksheet.insert_image('B2', url, {'image_data': image_data})

http://xlsxwriter.readthedocs.io/example_images_bytesio.html