我通過運行下面的代碼提取了一個 excel 檔案。
from zipfile import ZipFile
with ZipFile('HISTDATA_COM_XLSX_EURUSD_M12018.zip', 'r') as zipObj:
zipObj.extractall()
在那之后,我想打開它。由于是 xlsx 檔案,我匯入了 openpyxl 模塊并運行以下代碼。
from zipfile import ZipFile
import openpyxl
with ZipFile('HISTDATA_COM_XLSX_EURUSD_M12018.zip', 'r') as zipObj:
zipObj.extractall()
ref_workbook = openpyxl.load_workbook('DAT_XLSX_EURUSD_M1_2018.xlsx')
然后,我收到此錯誤:“作業簿不包含默認樣式,在 Python 中應用 openpyxl 的默認樣式。” 所以我還匯入了警告模塊并運行了下面的代碼:
import warnings
from zipfile import ZipFile
import openpyxl
warnings.filterwarnings("ignore")
with ZipFile('HISTDATA_COM_XLSX_EURUSD_M12018.zip', 'r') as zipObj:
zipObj.extractall()
ref_workbook = openpyxl.load_workbook('DAT_XLSX_EURUSD_M1_2018.xlsx')
但我在輸出中什么也沒收到。任何人都可以幫忙嗎?我的作業系統是 Linux Ubuntu。我下載并提取的檔案的鏈接是:https ://www.histdata.com/download-free-forex-historical-data/?/excel/1-minute-bar-quotes/eurusd/2018
PS!我不想使用 pandas 模塊。
uj5u.com熱心網友回復:
您的代碼似乎確實回傳了對作業簿的參考,但您沒有從中讀取任何資料。您需要指定作業表并從單元格中讀取資料。
import warnings
from zipfile import ZipFile
import openpyxl
warnings.filterwarnings("ignore")
with ZipFile('HISTDATA_COM_XLSX_EURUSD_M12018.zip', 'r') as zipObj:
zipObj.extractall()
ref_workbook = openpyxl.load_workbook('DAT_XLSX_EURUSD_M1_2018.xlsx')
sheet_2018 = ref_workbook['2018']
cell_A1 = sheet_2018['A1'].value
print(cell_A1)
cell_A1 = sheet_2018.cell(1, 1).value
print(cell_A1)
輸出:
2018-01-01 17:00:00
2018-01-01 17:00:00
uj5u.com熱心網友回復:
您可以使用 pyautogui 打開檔案
from os import path
import pyautogui
filename = pyautogui.prompt("Filename: ")
print("Exists File: %s " % path.isfile(filename))
f = open(filename, "r")
您可以使用 pyautogui 打開檔案
uj5u.com熱心網友回復:
更新:當我設定時,data_only=True我能夠閱讀作業簿而沒有錯誤。此外,您必須告訴它使用活動作業表,就像這樣......
ref_workbook = openpyxl.load_workbook('DAT_XLSX_EURUSD_M1_2018.xlsx', data_only=True)
ws = ref_workbook.active #per the docs
該load_workbook函式的源代碼提到了一個data_only引數。考慮到它是一個在原始 xlsx 中沒有格式化的簡單資料集,我猜這可能會有所幫助。
來源load_workbook:
https ://foss.heptapod.net/openpyxl/openpyxl/-/blob/branch/3.0/openpyxl/reader/excel.py#L288
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/517670.html
