2017-07-12 21 views
0

サブプロセスを使用して、エクスプローラ内のファイルを呼び出して開くことができます。しかし、MicrosoftのExcelファイルで特定のシートを開くにはどうすればよいのですか?PythonからExcelシートをExcelで開く方法?

私のプログラムの構造はこれです:

私はPythonプログラムで、ユーザからのシート名を取得し、私はExcelシートはエクセルソフトで開いていることが必要です。

UPDATE:これまで

マイコード:

import subprocess 

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

が、これは私が呼び出したときに、文書内の特定のシートを開くことにしたいExcelでファイルを開きます。事前

+0

Pythonの内部からExcelを呼び出したいのですか?または、xlファイルをPythonに読み込もうとしていますか?あなたのコードを投稿すると便利です! – patrick

+0

@patrick彼は良いシートを開いてPythonからExcelを呼びたいと思っています。 – Silveris

+0

は、このwindowsまたはosxですか?それは各環境で異なっている...窓のために、あなたはCOMインターフェースを使うだろう; osxのために、私はまだ(まだ)それをしていないが、それはある種のapplescriptインターフェイスでなければなりません。 –

答えて

-1

おかげでxlrdライブラリを使用します。

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

私はそれをpython環境にプリントしたくありません。私はそれがExcel環境で開かれることを望みます。 –

0

Excelでファイルを操作し、ちょうどExcelで開くためにはPythonを使用したい場合は、私はsubprocess.Popenを好みますsubprocess.Call()ではなく、()を呼び出します。

ファイルを特定のシートで開くには、Excelで開く前にブックを開いて選択したシートに保存する必要があります。あなたのファイルが.xlsxファイルの場合、最良のPythonモジュールは 'openpyxl'です(もちろん私の意見では)。

次のコードは、(Windowsの10、MSエクセル2016とPython 3.6.3)私のマシンで正常に働いていた:、その後

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) 

正確"にspecifyedシートでMS Excelでファイルを開きますwsToOpen '

関連する問題