3

enter image description hereI want to embedded image , text file into the excel sheet by using python script. And after that we can check the content of the file by clicking on the object inside the cell.

With below code I am able to insert image into a particular cell (C2). But my concern is that how to insert an image as an object or text file also an object into a particular cell of the worksheet.
Please check screen shot for reference.

import openpyxl 
import time
import datetime
from openpyxl.drawing.image import Image

################### Todays date ###############################
dateToday=datetime.datetime.today()
FormatedDate=('{:02d}'.format(dateToday.day)+'-'+'{:02d}'.format(dateToday.month)+'-'+'{:04d}'.format(dateToday.year))
print (FormatedDate)
#

Read the Workbook

Sigos_DailyHealthCheckReport = r'D:\Script\Monitoring\CheckReport-6-Dec-2017.xlsx'

Load the Workbook

LoadFile = openpyxl.load_workbook(Sigos_DailyHealthCheckReport) 

Access first Worksheet of the Workbook

AccessFile = LoadFile.active

################## SHEET 1

To access particular weeksheet with in the workbook.

Sheet2 = LoadFile.get_sheet_by_name('Operational Status Of SITE') 

img = Image("D:\Script\Monitoring\Dashboard.png", size=[140,140])
Sheet2['A1'] = 'This is Sid'

Sheet2.add_image(img, 'C2')

LoadFile.save("CheckReport.xlsx")
LoadFile.close()

1 Answer 1

3
###### Finally I have develop the script for the above mention question.
###### I am share it so that someone can make use of it if he/she is searching resolution for similar issue.

##pip install pypiwin32 to work with windows operating sysytm and import the module as mentioned below.
import win32com.client 
# Creating an object for accessing excel application.
excel_app = win32com.client.Dispatch('Excel.Application')
# Set visible as 1. It is required to perform the desired task.
excel_app.visible = 1
# Open the excel workbook from the desired location in read mode.
workbook = excel_app.Workbooks.Open(r'D:\Script\Monitoring\DailyHealthCheckReport.xlsx')
# Select worksheet by name.
worksheet = workbook.Sheets('Operational Status Of SITE')
# To assign an object for OLEObject(=EMBED("Packager Shell Object","")). 
Embedded_object = worksheet.OLEObjects()
# To assign loction of the image file that need to inserted as OBJECT in excel worksheet.
file_loction = "D:\Script\Monitoring\Dashboard.png"
# To add selected file to the excel worksheet. It will add the OBJECT to the A1 cell of the current worksheet.
Embedded_object.Add(ClassType=None, Filename=file_loction, Link=False, DisplayAsIcon=True,Left=3, Top=0, Width=50, Height=50)
# To Copy selected range of cells in the current worksheet.
worksheet.Range('A1:A1').Copy()
# To paste the copied data to a perticular range of cells in currnet worksheet.
worksheet.Paste(Destination=worksheet.Range('C2:C2'))
# To select fist item in the list of object i.e. first object.
obj = Embedded_object.Item(1)
# To delete selected object from the worksheet.
obj.Delete()
Sign up to request clarification or add additional context in comments.

2 Comments

Thanks, Is there any other open-source module to do the same embedding files.
I need to do the same thing in Linux Machine, which doesn't have Microsoft application.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.