Чтение файла Excel xlsx в кадр данных pandas с помощью openpyxl генерирует ошибку значенияPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Чтение файла Excel xlsx в кадр данных pandas с помощью openpyxl генерирует ошибку значения

Сообщение Anonymous »

Я написал код с использованием селена для загрузки файла Excel xlsx с веб-сайта, переименования его и последующего открытия с помощью openpyxl. однако попытка прочитать файл в кадре данных pandas с помощью openpyxl приводит к ошибке.
Ошибка следующая:

Код: Выделить всё

ValueError: Unable to read workbook: could not read stylesheet from ./ETF/test/test.xlsx.This is most probably because the workbook source files contain some invalid XML.Please see the exception for more details.
Файл можно без проблем открыть вручную.
Мой код выглядит так:

Код: Выделить всё

import os.path
import pandas as pd
import numpy as np
import time
import requests
from glob import glob
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

op = webdriver.ChromeOptions()
prefs = {"download.default_directory":os.path.abspath("./ETF/test")}
# Define download path
op.add_experimental_option("prefs", prefs)
# Google Chrome
PATH = r"./webdriver/chromedriver.exe"
#PATH = r"D:\Coding\Python\project1\webdriver\chromedriver.exe"
# Use Service to set the ChromeDriver path
service = Service(PATH)
driver = webdriver.Chrome(service=service, options=op)
wait = WebDriverWait(driver, 30)

# Download and rename file if it doesn't exist
driver.get('https://www.amundietf.de/de/professionell') # Be aware in recent times, server is often down
driver.maximize_window()
# Wait for the "Professioneller Anleger" button to be present and clickable
profanleger_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, "//button[normalize-space()='Professioneller Anleger']")))
profanleger_button.click()
# Wait for the "Akzeptieren und fortfahren" button to be clickable and click it
akzept_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "confirmDisclaimer")))
akzept_button.click()
# Wait for the "Akzeptieren und fortfahren" button to be clickable and click it
cookies_button = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.ID, "CookiesDisclaimerRibbonV1-AllOn")))
cookies_button.click()
time.sleep(2)

# Check whether file exists
if os.path.isfile('ETF/test/' + "Fondszusammensetzung_Amundi*"):
print("File exists.")
else:
driver.get('https://www.amundietf.de/de/professionell/products/equity/amundi-index-msci-emerging-markets-ucits-etf-dr-d/lu1737652583')
# Download file
Komp_ETF_herunterladen_xpath = "//span[@class='pr-3 bold-text']"
# Wait until the download button is clickable
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, Komp_ETF_herunterladen_xpath)))
dlbutton = driver.find_element(By.XPATH, Komp_ETF_herunterladen_xpath)
dlbutton.click()
time.sleep(20)  # Waiting is somehow necessary, otherwise renaming is not successful
etf_path = './ETF/test/'
f = glob(os.path.join(etf_path, "Fondszusammensetzung_Amundi*"))[0]
os.rename(f, os.path.join(etf_path, 'test.xlsx'))

# Quit browser
driver.quit()
time.sleep(20)

df = pd.read_excel('./ETF/test/test.xlsx', engine='openpyxl', skiprows=18, skipfooter=4, header=1, usecols="B:H")
df.to_csv('./ETF/test/test.csv', sep=';', encoding='latin-1', decimal=',')
Я без проблем могу открыть и отредактировать файл в Excel. Я не вижу ошибок в файле. Как мне убедиться, что я могу прочитать файл как фрейм данных, отредактировать его, а затем экспортировать как файл CSV?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ates-value
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Pandas: как преобразовать кадр данных M*N в кадр данных (M*N)*1
    Anonymous » » в форуме Python
    0 Ответы
    88 Просмотры
    Последнее сообщение Anonymous
  • Как сделать стиль, скопированный из исходного файла xlsx, таким же, как стиль целевого файла xlsx?
    Гость » » в форуме JAVA
    0 Ответы
    111 Просмотры
    Последнее сообщение Гость
  • Openpyxl Чтение нескольких листов .xlsx для создания одного
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Чтение файла Excel (.xlsx) из Azure Blob с помощью Java и Azure SDK без его локальной загрузки.
    Anonymous » » в форуме JAVA
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Чтение файла Excel (.xlsx) из Azure Blob с помощью Java и Azure SDK без его локальной загрузки.
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»