2015-12-02 32 views
0

我已經開始看xlwings我的Excel操作的Python的力量和速度是非常不同的,那麼VBA什麼我希望做的事。 (或因此我告訴)開幕ExcelFiles只讀與Xlwings

通過一些xlwings文檔的閱讀中,我看不出是否有打開一個Excel文件爲只讀的方式。有時我想要打開的文件由另一個應用程序或用戶打開,因此我無法訪問該文件,因爲它試圖以讀寫方式打開。

是否與xlwings或其他Python庫,我可以以只讀方式打開文件的方式,讀取特定範圍的信息,然後關閉該文件?

+0

我已經開了一個功能要求:https://github.com/ZoomerAnalytics/xlwings/issues/318 –

+0

@FelixZumstein謝謝。我不確定這是否是我錯過的東西。 – JohnFayt

回答

1

什麼使文件的副本,讀取拷貝,然後刪除後,該副本?或者,如果您使用openpyxl,則由於您正在讀取excel的xml元數據,因此不需要「打開」該文件。

import openpyxl as xl 
workbook = xl.load_workbook('path/to/file.xls') 
worksheet = workbook.get_sheet_by_name('worksheetname') 
cell = worksheet.cell('A1') 

所有這些應該工作而無需實際打開該文件。

+0

感謝您的建議。因爲這不是「打開」文件,這是否意味着腳本應該運行得更快?例如,我正在循環瀏覽數百個文件。在VBA中這需要15分鐘,因爲它實際上打開了excel文件的一個實例。 – JohnFayt

+0

是的 - 我建議在這種情況下使用openpyxl。它並不需要操作系統每次啓動一個excel實例(這需要很長時間)。 XLWings和VBA通常用於「遠程控制」一個excel實例,但是我將它用於讀取和寫入excel文件,而不需要「遠程控制」功能。 –

+0

感謝您的幫助。我有一個後續問題,但我知道這有點超出範圍。你知道我該如何運行一個openpyxl腳本的凍結實例嗎?看來py2exe不能使用它。 – JohnFayt