Fehler beim Lesen von Daten aus EXCEL und Schreiben in ein anderes Workbook
Verfasst: Sonntag 5. Mai 2019, 17:50
Hallo zusammen,
ich bin Python Neuling und möchte gerne Zellen aus einer Excel-Datei auslesen und in ein anderen Worksheet wieder einlesen.
In einer Spalte der Tabelle befinden sich Datumsfelder (Format; 2018-01-01 00:00).
Ich lese die Daten mit einem np.empty-Array ein und möchte die Elemente des Arrays wieder in die Zellen eines anderen Worksheets auslesen.Dabei ensteht bei der Übertragung der Datumsfelder ein Fehler. Excel ist offensichtlich nicht in der Lage das Format wieder umzuwandeln. Mir ist klar, dass es sich um ein Formatfehler handelt, aber ich habe keine Idee wie das Problem zu lösen ist.
Wenn jemand einen Tipp hat, wäre ich dankbar.
Beste Grüße
Fehlermeldung:
File "C:\Users\Stefan_Sony\Anaconda3\lib\site-packages\openpyxl\cell\cell.py", line 218, in _bind_value
raise ValueError("Cannot convert {0!r} to Excel".format(value))
ValueError: Cannot convert '2' to Excel
ich bin Python Neuling und möchte gerne Zellen aus einer Excel-Datei auslesen und in ein anderen Worksheet wieder einlesen.
In einer Spalte der Tabelle befinden sich Datumsfelder (Format; 2018-01-01 00:00).
Ich lese die Daten mit einem np.empty-Array ein und möchte die Elemente des Arrays wieder in die Zellen eines anderen Worksheets auslesen.Dabei ensteht bei der Übertragung der Datumsfelder ein Fehler. Excel ist offensichtlich nicht in der Lage das Format wieder umzuwandeln. Mir ist klar, dass es sich um ein Formatfehler handelt, aber ich habe keine Idee wie das Problem zu lösen ist.
Wenn jemand einen Tipp hat, wäre ich dankbar.
Beste Grüße
Code: Alles auswählen
import openpyxl
import os
import xlsxwriter
import pandas as pd
import numpy as np
import datetime
path1='e:\Quelldaten_Stromkonktrakte EEX Baseload Year_KOS/PhelixDEPowerFuturesHistory_2018.xlsx'
wb=openpyxl.load_workbook(path1)
sheet=wb['DEBY']
daten_ein = pd.ExcelFile(path1)
df=daten_ein.parse('DEBY')
zellenanzahl_ein=df.shape[0]
# Anlegen von arrays um Zellendaten einzulesen und zu kopieren
arr2018_Handelstag= np.empty(zellenanzahl_ein, dtype='str')
arr2018_Lieferperiode=np.empty(zellenanzahl_ein)
arr2018_Settlementpreis=np.empty(zellenanzahl_ein)
for i in range (1,zellenanzahl_ein-1):
arr2018_Handelstag[i]= sheet.cell(row=i+3,column=1).value
arr2018_Lieferperiode[i]=sheet.cell(row=i+3,column=3).value
arr2018_Settlementpreis[i]=sheet.cell(row=i+3,column=11).value
path2='e:/test3.xlsx'
wb1=openpyxl.load_workbook(path2)
sheet1=wb1['ausgabe']
daten_aus = pd.ExcelFile(path2)
df1=daten_aus.parse('ausgabe')
if df1.shape[0]==0:
z=df1.shape[0]+1
else:
z=df1.shape[0]+2
s=5
for i in range(1,zellenanzahl_ein-1):
sheet1.cell(s,4).value =arr2018_Settlementpreis[i]
sheet1.cell(s,3).value=arr2018_Lieferperiode[i]
sheet1.cell(s,2).value=(arr2018_Handelstag[i])
s+=1
print("Programm abgeschlossen")
wb1.save(path2)
wb1.close
File "C:\Users\Stefan_Sony\Anaconda3\lib\site-packages\openpyxl\cell\cell.py", line 218, in _bind_value
raise ValueError("Cannot convert {0!r} to Excel".format(value))
ValueError: Cannot convert '2' to Excel