12 Stimmen

Wie zeigt man lange Zahlen in Excel an?

Ich muss ein C#-Programm erstellen, das CSV-Dateien erstellt und lange Zahlen (als String in meinem Programm) einfügt. Das Problem ist, wenn ich diese CSV-Datei in Excel öffnen die Zahlen erscheinen wie diese:

1234E+ oder 1234560000000 (das Ende der Zahl ist 0)

Wie behalte ich die Formatierung der Zahlen bei? Wenn ich die Datei als Textdatei öffne, werden die Zahlen richtig formatiert.

Vielen Dank im Voraus.

17voto

John Y Punkte 13359

Wie bereits von anderen erwähnt, können Sie erzwingen, dass die Daten eine Zeichenkette sind. Der beste Weg dafür war ="1234567890123". Das = macht die Zelle zu einer Formel, und die Anführungszeichen machen den eingeschlossenen Wert zu einem Excel-Stringliteral. Dadurch werden alle Ziffern angezeigt, auch über die numerische Genauigkeitsgrenze von Excel hinaus, aber die Zelle kann (im Allgemeinen) nicht direkt für numerische Berechnungen verwendet werden.

Wenn die Daten numerisch bleiben sollen, ist es wahrscheinlich am besten, eine native Excel-Datei (.xls oder .xlsx) zu erstellen. Verschiedene Ansätze dafür finden Sie in den Lösungen zu diese verwandte Stack Overflow-Frage .

Wenn es Ihnen nichts ausmacht, Tausendertrennzeichen zu verwenden, können Sie einen weiteren Trick anwenden, nämlich Ihr C#-Programm dazu zu bringen, die Tausendertrennzeichen einzufügen und den Wert in Anführungszeichen zu setzen: "1,234,567,890,123". Fügen Sie kein führendes = ein (denn dadurch wird der Wert in eine Zeichenkette verwandelt). Beachten Sie, dass in diesem Fall die Anführungszeichen zum Schutz der Kommas in der CSV-Datei dienen und nicht zur Angabe eines Excel-String-Literal.

10voto

VVS Punkte 18907

Formatieren Sie diese langen Zahlen als Zeichenketten, indem Sie ein ' (Hochkomma) voranstellen oder eine Formel daraus machen: ="1234567890123"

0voto

Robert Harvey Punkte 173098

Das können Sie nicht. Excel speichert Zahlen mit einer Genauigkeit von fünfzehn Stellen. Wenn es Ihnen nichts ausmacht, dass Sie in Excel keine Berechnungen mit den Zahlen durchführen können, können Sie sie als Text speichern, und alle Ziffern werden angezeigt.

0voto

Sinan Ünür Punkte 114993

Wenn ich Daten generiere, die in Excel importiert werden sollen, generiere ich keine CSV-Datei, wenn ich die Kontrolle über die Anzeige der Daten haben möchte. Stattdessen schreibe ich eine Excel-Datei, in der die Eigenschaften der Zellen entsprechend eingestellt sind. Ich weiß nicht, ob es eine Bibliothek gibt, die das für Sie in C# erledigt, ohne dass Excel auf dem Rechner installiert sein muss, auf dem die Dateien erzeugt werden, aber es ist etwas, das man in Betracht ziehen sollte.

0voto

Oorang Punkte 6520

    Meine Meinung dazu:
    Ich denke, es ist wichtig zu erkennen, dass es einen Unterschied zwischen "Daten" und "Formatierung" gibt. In diesem Beispiel versuchen Sie, beides in einer reinen Datendatei zu speichern. Wie Sie aus anderen Antworten ersehen können, wird dadurch die Art der Daten verändert. (Mit anderen Worten: Sie werden in eine Zeichenkette umgewandelt. Eine CSV-Datei ist eine reine Datendatei. Man kann hier und da ein paar Tricks anwenden, um die Formatierung mit den Daten zu vermischen, aber meiner Meinung nach werden die Daten dadurch im Wesentlichen beschädigt, indem sie mit Nicht-Datenwerten vermischt werden: "Formatierung".
    Wenn Sie wirklich in der Lage sein müssen, Formatierungsinformationen zu speichern, schlage ich vor, dass Sie zu einem Dateityp wechseln, der in der Lage ist, Formatierungsinformationen getrennt von den Daten zu speichern, falls Sie Zeit haben, dies zu entwickeln. Es klingt, als wäre dieses Problem ein guter Kandidat für eine XML-Kalkulationstabellenlösung. Auf diese Weise können Sie nicht nur Ihre Daten angeben, sondern auch deren Typ und die von Ihnen gewünschte Formatierung.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X