2016-07-05 7 views
1

Ich habe das folgende Skript, das von hier aus (http://pythonexcels.com/python-excel-mini-cookbook/) immitated wurde:pywintypes.com_error Öffnen

import win32com.client as win32 
excel = win32.gencache.EnsureDispatch('Excel.Application') 
wb = excel.Workbooks.Open('words.xlsx') 

und es gibt folgende Fehler (vollständige Rückverfolgung)

Traceback (most recent call last): File "", line 1, in wb = excel.Workbooks.Open('words.xlsx') File "C:directory\Python35\lib\site-packages\win32com\gen_py\00020813-0000-0000-C000-000000000046x0x1x7\Workbooks.py", line 78, in Open , Converter, AddToMru, Local, CorruptLoad) pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', "'words.xlsx' could not be found. Check the spelling of the file name, and verify that the file location is correct.\n\nIf you are trying to open the file from your list of most recently used files, make sure that the file has not been renamed, moved, or deleted.", 'xlmain11.chm', 0, -2146827284), None)

Als ich Alternativ können Sie openpxls Funktionen verwenden, um die Arbeitsmappe zu öffnen. Es gibt kein Problem (referenzierte https://automatetheboringstuff.com/chapter12/). Die Python-Datei und die Excel-Datei befinden sich zusammen im selben Ordner. Rufe ich etwas unangemessen an?

Ich bin sicher, dass die Datei korrekt geschrieben ist (words.xlsx) und dass es sich im selben Ordner wie die Python-Datei befindet.

Alle Gedanken würden geschätzt werden.

+0

Ihre Datei und Skript auf s ame Verzeichnis und Datei haben 'R-W' (Lese-Schreib) Erlaubnis bekommen? – dsgdfg

+0

Ja, es hat Lese-/Schreibberechtigung. Wenn es einen Wert hat, verwende ich Python 3.5 auf einem Windows 7-Rechner. –

Antwort

2

Try this:

import win32com.client as win32 
import os 
excel = win32.gencache.EnsureDispatch('Excel.Application') 
path = os.getcwdu().replace('\'','\\') + '\\' 
wb = excel.Workbooks.Open(path+'words.xlsx') 

Gestellte einen path Fehler, nicht module oder system Fehler.

'xlmain11.chm' ist leer, also brauche ich das nicht.

Vorsicht bei der Verwendung von Escape-Zeichen unter path-string. Script and work file in same directory !

Hoffnung hilfreich ..

+0

Dies funktionierte, nachdem ich "getcwdu" zu "getcwd" geändert habe, ich bin mir nicht sicher, ob es ein Python-Versionsunterschied oder etwas anderes ist, aber Ihr Vorschlag hat perfekt funktioniert. Vielen Dank! –

0

Haben Sie openpyxl versucht, es ist sehr einfach zu bedienen, Lesen und Schreiben von Excel-Dateien wird keine Probleme

from openpyxl import Workbook 

Und initialisieren als

wb = Workbook() 
ws = wb.active() 

Und Sie können sofort anfangen zu lesen und zu schreiben

+0

In meinem Beitrag behaupte ich, ich habe versucht, openpyxl zu verwenden, und es funktioniert ohne irgendein Problem (ich stimme dir zu!), Aber ich bin nicht in der Lage, Zellen wie ich mit win32com systematisch auszufüllen. Ich verweise die Zellen als Blatt [x, y], wobei x ein int und y ein int ist, anstatt die tatsächlichen Spaltennamen (A, B, C usw.) zu berücksichtigen. –

+0

Okay, tut mir leid. So ist das Problem mit win32.com richtig gelöst, viel Glück für Ihr Projekt. –