P.S. I also just validated that a non-admin could run the code in ipython with a test xlsx, and open the workbook, navigate to a worksheet, and then read a value in A1 that I put the words "this is a test" in.
* Is User Account Control (UAC) enabled on the PC we are troubleshooting with? That could be causing issues and you may need to troubleshoot that. * Does the non-admin have NTFS permissions to the Excel workbook you are working with (my test was just c:\\scripts\\test.xlsx)? (Can the non-admin browse to that file and double click it to open it - just as a test?) * What OS is the PC that we are trying to troubleshoot (W11, W10, W7, W8? Or possibly terminal services on a Server OS?) My test was on W10 x64 build 20H2 * What version of pywin32 are you running and what version of python are we troubleshooting? Im running Python 3.6 my pywin32 version: C:\python36>pip freeze| findstr /c:pywin32 WARNING: Ignoring invalid distribution -ffi (c:\python36\lib\site-packages) pywin32==302 pywin32-ctypes==0.1.2 My guess is that this is more an environmental issue than a python problem, but the version info might help in diagnosing this further. # my test code import win32com.client as w3c filename = 'C:\\\\scripts\\\\this.xlsx' ExcelApp = w3c.DispatchEx("Excel.Application") ExcelApp.Visible = False ExcelApp.DisplayAlerts = False wb = ExcelApp.Workbooks.Open("{0}".format(filename)) worksheet = wb.Worksheets[0] worksheet.Range("A1").Value # Ipython output: In [5]: worksheet.Range("A1").Value Out[5]: 'this is a test' P.S. Im also a fan of F-strings... wb = ExcelApp.Workbooks.Open(f"{filename}") OR more simply wb = ExcelApp.Workbooks.Open(filename) HTH Steven From: python-win32 <python-win32-bounces+steven=manross....@python.org> On Behalf Of Steven Manross Sent: Sunday, December 12, 2021 6:00 PM To: Tamara Abugharbieh <tamara.abugharb...@realsoft-me.com>; python-win32@python.org Subject: Re: [python-win32] pywin can not access excel file Is this a typo on the email or is your production code really referencing filename and fileName? You need to reference the variable name using the same casing in both places (if this is not a typo in your email example). P.S. I don't think you need the 4 backslashes.. 2 usually does the trick, but there's nothing from stopping it from working using 4 backslashes. import win32com.client as w3c # lowercase filename = 'C:\\\\App\\\\Backend\\\\public\\\\MSB_2021\\\\11\\\\SYB_10_7_V1.xlsx' ExcelApp = w3c.DispatchEx("Excel.Application") ExcelApp.Visible = False ExcelApp.DisplayAlerts = False # mixed case wb = ExcelApp.Workbooks.Open("{0}".format(fileName)) From: python-win32 <python-win32-bounces+steven=manross....@python.org> On Behalf Of Tamara Abugharbieh Sent: Sunday, December 12, 2021 1:32 AM To: python-win32@python.org Subject: [python-win32] pywin can not access excel file Hi, We are using winpy32 to automate excel applications using python. The python script will be used by users with no administrator privileges, and in this case, we are getting the following error: pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', \"Microsoft Excel cannot access the file 'C:\\\\App\\\\Backend\\\\public\\\\MSB_2021\\\\11\\\\SYB_10_7_V1.xlsx'. There are several possible reasons: The file name or path does not exist. The file is being used by another program. The workbook you are trying to save has the same name as a currently open workbook.\", 'xlmain11.chm', 0, -2146827284) Things to note: 1. The file does exist 2. The file is not being used by another program 3. The path is correct 4. The python script is being successfully used by users with administrative privileges Please find bellow the method I am using to open the excel file: import win32com.client as w3c filename = 'C:\\\\App\\\\Backend\\\\public\\\\MSB_2021\\\\11\\\\SYB_10_7_V1.xlsx' ExcelApp = w3c.DispatchEx("Excel.Application") ExcelApp.Visible = False ExcelApp.DisplayAlerts = False wb = ExcelApp.Workbooks.Open("{0}".format(fileName)) Appreciate your help. Best, Tamara
_______________________________________________ python-win32 mailing list python-win32@python.org https://mail.python.org/mailman/listinfo/python-win32