[Python] Der von Openpyxl geschriebene Wert wird als Exponent (E) angezeigt.

Probleme, die aufgetreten sind

Der von der Python-Bibliothek openpyxl geschriebene Wert wird im exponentiellen Anzeigeformat mit E angezeigt.

sample_code.py


import openpyxl

wb = openpyxl.open('./Book1.xlsx')
sh = wb['Sheet1']

sh.cell(row=1, column=1).value = 308985489249593041

wb.save('./result.xlsx')

Ergebnis image.png Selbst wenn die Anzeige mit entfernter Exponentialfunktion erfolgt, werden einige der Endungen durch Nullen ersetzt, was ein Problem darstellt.

Ursache

Probleme mit den Spezifikationen von Excel anstelle von openpyxl

Wenn Sie mehr als 15 Stellen in eine Excel-Zelle eingeben, werden alle Zahlen, die länger als 15 sind, in 0 geändert.

[Durch Eingabe einer langen Nummer in eine Excel-Zelle wird die letzte Nummer in 0 geändert](https://docs.microsoft.com/en-us/office/troubleshoot/excel/last-digits-changed-to- von Nullen)

Bei der numerischen Berechnung scheint es kein Problem zu sein, wenn die Genauigkeit geringfügig verringert wird, wenn die Anzahl der Stellen so groß ist. Es ist ein Problem, wenn Sie so etwas wie eine ID, eine Cleca-Nummer oder sogar eine einzelne Ziffer schreiben.

Lösung

Schreiben Sie einfach eine Zahl als Zeichenfolge

sample_code.py


import openpyxl

wb = openpyxl.open('./Book1.xlsx')
sh = wb['Sheet1']

#Ich werde den hier zu schreibenden numerischen Wert str-Typ machen
sh.cell(row=1, column=1).value = str(308985489249593041)

wb.save('./result.xlsx')

image.png Ich bin wütend, weil dies eine Zeichenfolge oder eine Zahl ist, die mit Apostrophie beginnt, aber ich könnte sie schreiben Übrigens kann die Berechnung in Excel normal durchgeführt werden, auch wenn dieser Fehler auftritt.

Wie kann ich den Wert als Zeichenfolge in openpyxl schreiben lassen?

sample_code.py


import openpyxl

wb = openpyxl.open('./result.xlsx')
sh = wb['Sheet1']

A1_value = sh.cell(row=1, column=1).value
print(A1_value)
print(type(A1_value))

'''
> 308985489249593041
> <class 'str'>

Es scheint als Zeichenkette erworben zu werden Ich muss es wieder durch int ersetzen

Nachtrag: Ich werde das Format angeben

Die folgenden Artikel wurden in den Kommentaren vorgestellt. Geben Sie das Anzeigeformat von Zahlen mit openpyxl an

Deshalb Ich habe einige Formate an sh.cell (row =, colum =) übergeben. Number_format =. Die zu schreibende Nummer ist dieselbe wie oben 308985489249593041 image.png In dem in Spalte A angegebenen Format ist Spalte B das Ergebnis Oh, es ist unglaublich. Das Format hat sich richtig geändert. Aber leider kann das Ende auf 0 geändert werden ... Es ist ein B2- oder Zeichenkettenformat, aber es scheint unmöglich, wenn es zum Zeitpunkt des Schreibens ein int-Typ ist ...

Nachwort

Gibt es eine intelligentere Problemumgehung? Sie können die Obergrenze mit einem Excel-Plug-In freigeben Wenn Sie es wissen, lassen Sie es mich bitte wissen

Recommended Posts

[Python] Der von Openpyxl geschriebene Wert wird als Exponent (E) angezeigt.
Was tun, wenn der Werttyp in Python nicht eindeutig ist?
Wo ist der Python-Instanziierungsprozess geschrieben?
Was ist "Mahjong" in der Python-Bibliothek? ??
Das Datum wird in matplotlib falsch angezeigt.
Was ist im Docker Python-Image pfeifend?
Über den Unterschied zwischen "==" und "is" in Python
Finden Sie den Bruchteil des in Python eingegebenen Werts heraus
Konvertieren Sie den exponentiellen Float in Python in str
Auch wenn die Entwicklungssprache in Cloud9 in Python3 geändert wird, wird Version 2 in Python - Version angezeigt
Überprüfen Sie, ob die Zeichenfolge eine Zahl in Python ist
Verstehen Sie die Exponentialverteilung sorgfältig und zeichnen Sie in Python
Was ist das Domain-Attribut, das in Plotlys Layout geschrieben ist?
Suchen Sie den Teil 575 aus Wikipedia in Python
Rufen Sie den im Pulldown-Menü Selenium Python VBA ausgewählten Wert ab
Was tun, wenn der Fortschrittsbalken in tqdm von Python nicht angezeigt wird?
Klassennotation in Python
Ich möchte initialisieren, wenn der Wert leer ist (Python)
Test.py wird auf dem Webserver in Python3 nicht angezeigt.
Vergleich des in Python geschriebenen EMA-Codes (Exponential Moving Average)
Rufen Sie den Wert ab, während Sie den Standardwert aus dict in Python angeben
Das Graustufenbild wird in OpenCV / Python als Farbbild angezeigt
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
Holen Sie sich automatisch den Port, an dem Arduino in Python steckt
Wenn in python3 manage.py makemigrations "Keine Änderungen erkannt" angezeigt wird
Finde Fehler in Python
Berechnung des Scherspielwerts in Python
Löse ABC176 E in Python
Konvertieren Sie die CIDR-Notation in Python
Gacha geschrieben in Python -BOX Gacha-
Wenn im Python-Wörterbuch auf einen nicht vorhandenen Schlüssel zugegriffen wird, initialisieren Sie ihn mit einem beliebigen Wert
Ein einfacher Grund, warum der Rückgabewert von round (2.675,2) in Python 2,67 beträgt (in Wirklichkeit sollte er 2,68 betragen ...)
Wie ist der Fortschritt? Lassen Sie uns mit dem Boom in Python weitermachen
Spielen Sie Sounds in Python ab, vorausgesetzt, die Tastatur ist eine Klaviertastatur
Seien Sie vorsichtig, wenn Sie den Standardargumentwert in der Python 3-Serie angeben
[Python] Ausführungszeit, wenn eine Funktion in einen Wörterbuchwert eingegeben wird
Löschen Sie ein bestimmtes Zeichen in Python, wenn es das letzte ist
Verwendung von Sternchen (*) in Python. Vielleicht ist das alles? ..
Löse den kleinsten Wert in Python (entspricht Paiza Rang D)
Konvertieren Sie in PyTorch geschriebenes Python-Skript mit PyInstaller in exe
Cooles Lisp geschrieben in Python: Hy
Abrufen der arXiv-API in Python
[Python] Finden Sie den zweitkleinsten Wert.
Inklusive Notation im Argument der Python-Funktion
Verwenden Sie Stoff wie in Python (Stoff3)
Python im Browser: Brythons Empfehlung
Klicken Sie in Python auf die Sesami-API
Python ist UnicodeEncodeError im CodeBox-Docker
Holen Sie sich den Desktop-Pfad in Python
[Python] Was ist @? (Über Dekorateure)
Holen Sie sich den Skriptpfad in Python
Im Python-Befehl zeigt Python auf Python3.8
Implementieren Sie das Singleton-Muster in Python
Kompatibilitätsdiagnoseprogramm in Python geschrieben
[Python] Was ist der sortierte Schlüssel?
Wechseln Sie die in Django 1.9 angezeigte Sprache
Klicken Sie auf die Web-API in Python
In Python gibt es keinen Schalter
Ich habe die Warteschlange in Python geschrieben