Use Python to launch Excel file

Question:

when i try
os.system("open " + 'myfile.xlsx')
i get the output '0'

similarly, trying
os.system("start excel.exe myfilepath")
gives the result 32512

I have imported os and system, and I’m on mac. How can I change this so it does actually launch that excel file? And out of curiosity, what do the numbers it prints out mean?

Thanks!

Asked By: C2P1

||

Answers:

If you only want to open the excel application you could use subprocess:

import subprocess
subprocess.check_call(['open', '-a', 'Microsoft Excel'])

You can also use os and open a specific file:

import os
os.system("open -a 'path/Microsoft Excel.app' 'path/file.xlsx'")

If you on other hand want to open an excel file within python and modify it there’s a number of packages to use as xlsxwriter, xlutils and openpyxl where the latter is prefered by me.

Another note, if you’re on mac the excel application isn’t .exe

Answered By: Deusdeorum

Just these two lines

import os
os.system("start EXCEL.EXE file.xlsx")

Provided that file.xlsx is in the current directory.

Answered By: Ahmed Adewale

I don’t know about Mac OS, but if Windows Operating System is the case and provided the Microsoft Windows is properly installed, then consider using :

import os
os.system('start "excel" "C:\path\to\myfile.xlsx"')

double-quotation is important for excel and C:\path\to\myfile.xlsx ( where C just denotes the letter for the partition within the file system, might be replaced by D,E ..etc. ), and single-quotation is needed for the whole string within the os.system().

Answered By: Barbaros Özhan

On Windows 10, this works for me:

import os
full_path_to_file = "C:blahblahfilename.xlsx"
os.system(full_path_to_file)

Copy-pasting any full path to a file in the command prompt (or passing it to os.system()) seems to work as long as you have permission to open the file.
I suppose this only works when Excel is selected as default application for the .xlsx extention.

Answered By: Florian Aendekerk

As in: How to open an Excel file with Python to display its content?

import os
file = "C:\Documents\file.xlsx"
os.startfile(file)

It opens the file with the default application.

Answered By: Camilo Camacho

If you want this to work with your most recent downloaded xlsx file, you can use the following:

import glob

import os

list_of_files = glob.glob('C:\Downloads\*.xlsx')   *#note the .xlsx extension is needed to retrieve the last downloaded xlsx file.* 

latest_file = max(list_of_files, key=os.path.getctime)

os.system(latest_file)
Answered By: TheEsanel

A minor improvement that handles spaces and explicitly uses Excel:

import os
file = "C:/Documents/file name with spaces.xlsx"
file_with_quotes = '"' + file + '"'
os.system('start "EXCEL.exe" {}'.format(file_with_quotes))
Answered By: ClintFromVa
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.