2016-12-06 1 views
-1

Ich versuche, grüne Pfeile in Excel loszuwerden, die stehen für: 'Die Zahl in dieser Zelle wird als Text oder vorangestellt von einem formatiert Apostroph.'Openpyxl 2.4.1 kann nicht grüne Pfeile in Excel loswerden, nachdem ich neues Zahlformat gesetzt habe

Arbeiten mit Openpyxl 2.4.1 und Python 3.5.2.

für jetzt Funktion sieht wie folgt aus (allerdings habe ich viele verschiedene Versionen ausprobiert):

def price(): 
    cena = input("Cena: ") 
    cena = cena.replace('.', ',') 
    cell = 'D' + str(row) 
    arkusz1.active[cell].number_format = '0.00' 
    arkusz1.active[cell] = cena 
    print("Wprowadzono Cenę. \n") 

Danach dort mit Zahlenformat in Excel in der Tat Zelle ist enter image description here

aber der grüne Pfeil ist nach wie vor Gegenwart und das Format des Werts ist keine Zahl - kann nicht in Formeln verwendet werden.

Irgendeine Lösung?

Antwort

0

Sieht so aus, als ob die Zelle eine Zeichenfolge enthält. In diesem Fall spielt das Zahlenformat keine Rolle. Die grünen Pfeile sind da, weil Excel denkt, dass die Zeichenfolge in eine Zahl konvertiert werden soll. Um dies zu vermeiden, sollten Sie die Konvertierung selbst durchführen: cena = float(cena)

+0

Das war mein erster Gedanke, aber das Problem ist, dass ich Punkte für Excel-Zwecke durch Kommas ersetzen möchte. Wenn ich es in Float umwandeln bekomme ich: ValueError: Konnte String in Float nicht konvertieren: '9983,1' – Emejcz

+0

Sie müssen immer noch, offensichtlich, zuerst. Obwohl ich denke, dass Sie auch das 'locale'-Modul verwenden können. –

+0

Jemand half mir mit einer völlig anderen Lösung, aber es war ziemlich lang. Glücklicherweise habe ich bemerkt, dass die einfachste Lösung darin besteht, eine neue Variable hinzuzufügen: cena_nowa = float (cena) und jetzt funktioniert es wie erwartet. – Emejcz

Verwandte Themen