2017-07-12 3 views
0

Ich weiß, dass wir Subprozess verwenden können, um jede Datei im Explorer aufzurufen und zu öffnen. Aber wie öffne ich ein bestimmtes Blatt in der Excel-Datei in Microsoft Excel mit Python?Wie Excel-Tabellen in Excel von Python zu öffnen?

Meine Programmstruktur ist dies:

ich die Blattnamen von Benutzern bekomme in meinem Python-Programm, und ich brauche, dass Excel-Tabelle in Excel-Software geöffnet.

UPDATE:

Mein Code so weit:

import subprocess 

subprocess.call("explorer <path-to-my-file>") 

aber öffnet die Datei nur in Excel-i ein bestimmtes Blatt in dem Dokument geöffnet werden soll, wenn ich rufe.

Dank im Voraus

+0

bitte klarstellen: Sie möchten Excel aus Python heraus aufrufen? Oder du versuchst eine xl-Datei in Python zu lesen? Es wäre hilfreich, auch Ihren Code zu posten! – patrick

+0

@patrick Er möchte Excel von Python mit dem guten geöffneten Blatt aufrufen. – Silveris

+0

ist das Windows oder Osx? In jeder Umgebung ist das anders ... Für Windows würden Sie die COM-Schnittstelle verwenden. Für Osx habe ich es (noch) nicht gemacht, aber es sollte eine Art AppleScript-Schnittstelle sein. –

Antwort

-1

Verwenden Sie die xlrd Bibliothek:

import xlrd 

for name, sheet_name in zip(filename, sheetnumber): 
    book = xlrd.open_workbook(name) 
    sheet = book.sheet_by_name(sheet_name) 
    for row in range(sheet.nrows): 
     for column in range(sheet.ncols): 
      print row, column 
+0

ich will es nicht in die python-umgebung drucken. Ich möchte, dass es in der Excel-Umgebung geöffnet wird. –

0

Wenn Sie mit der Datei in Excel arbeiten mögen, und den Python verwenden, um es einfach in Excel zu öffnen, ziehe ich subprocess.Popen() statt subprocess.Call().

Um die Datei in einem bestimmten Blatt zu öffnen, sollten Sie die Arbeitsmappe im ausgewählten Blatt speichern, bevor Sie sie in Excel öffnen. Wenn Ihre Datei eine .xlsx-Datei ist, ist das beste Python-Modul 'openpyxl' (meiner Meinung nach natürlich).

der folgende Code arbeitete in meinem Rechner (Windows 10, MS Excel 2016 und Python 3.6.3) fein:

import openpyxl 
import subprocess 
filename = "<Full path to file>" 
wsToOpen = "<Worksheet name>" 

# Openthe xlsx file in Python 
xlsx_file = openpyxl.load_workbook(strCamArq) 

# List with all the worksheets in the workbook 
lst_worksheets = xlsx_file.get_sheet_names() 

# Change the active worksheet in the workbook 
xlsx_file._active_sheet_index = lst_worksheets.index(wsToOpen) 

# Save the workbook open in the chosen sheet 
xlsx_file.save(filename) 

#Open the workbook in MS Excel 
subprocess.Popen([filename], shell=True) 

Dann wird die Datei in MS Excel genau in dem in 'specifyed Blatt öffnet wsToOpen '