首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >打开xlsx文件

打开xlsx文件
EN

Stack Overflow用户
提问于 2022-10-18 18:19:40
回答 3查看 59关注 0票数 2

通过运行下面的代码,我提取了一个excel文件。

代码语言:javascript
复制
from zipfile import ZipFile
with ZipFile('HISTDATA_COM_XLSX_EURUSD_M12018.zip', 'r') as zipObj:
   zipObj.extractall()

之后,我想打开它。由于是xlsx文件,我导入了openpyxl模块并运行了下面的代码。

代码语言:javascript
复制
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的默认样式。”因此,我还导入了警告模块并运行了下面的代码:

代码语言:javascript
复制
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。我下载和提取的文件的链接是:https://www.histdata.com/download-free-forex-historical-data/?/excel/1-minute-bar-quotes/eurusd/2018

P.S!我不想使用熊猫模块。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-10-18 18:56:33

您的代码似乎正在返回对工作簿的引用,但您没有从中读取任何数据。您需要指定工作表并从单元格中读取数据。

代码语言:javascript
复制
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)

输出:

代码语言:javascript
复制
2018-01-01 17:00:00
2018-01-01 17:00:00
票数 1
EN

Stack Overflow用户

发布于 2022-10-18 18:29:57

您可以使用pyautogui打开文件。

代码语言:javascript
复制
from os import path
import pyautogui

filename = pyautogui.prompt("Filename: ")
print("Exists File: %s " % path.isfile(filename))
f = open(filename, "r")

您可以使用pyautogui打开文件。

票数 0
EN

Stack Overflow用户

发布于 2022-10-18 18:45:37

更新:当我设置时,我能够没有错误地读取工作簿。另外,你必须告诉它使用活动工作表,就像.

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74115720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档