Gibt es unterschiedliche Formate für eine Excel/XLSX-Datei und welches ist das kleinste?

Gibt es unterschiedliche Formate für eine Excel/XLSX-Datei und welches ist das kleinste?

Wir haben also zunächst versucht, dem Benutzer das Herunterladen von CSV-Dateien über seinen Browser zu ermöglichen, was problemlos funktionierte (einige Dateien sind etwa 375 MB groß). Es sieht jedoch so aus, als würde der Client dies nicht akzeptieren, weil a) Zahlen formatiert werden, b) führende Nullen entfernt werden und c) lange Zahlen wie ein Staatscode in geändert 157839481905werden 1.58E10.

Wenn Sie Excel verwendet haben, sind Sie mit diesen "Ich dachte, Sie wolltenDas" Verhaltensweisen..

Wir müssen also eine Excel-Datei streamen, aber gibt es verschiedene Formate? (Nehmen wir für diese Frage an, dass der Benutzer Zugriff auf die neueste Version von Excel hat.)

Ich glaube, dass Excel eine richtig spezifizierte XML-Datei als Tabellenkalkulation öffnen kann, die die richtigen Anweisungen zum Formatieren als Text enthalten könnte, aber bei großen Dateien könnte das wirklich außer Kontrolle geraten. Gibt es ein nativeres Excel-Format, das schlanker ist? Ohne so viel Markup? Wenn Sie es kennen, wo wird es beschrieben?

--BEARBEITEN--

Ich dachte, ich könnte der Community mit meinen Erkenntnissen helfen. Zuerst haben wir versucht, ="0040"vor den Anführungszeichen ein Gleichheitszeichen zu verwenden. Funktioniert, aber bei einer großen Datei ist die Größe zu groß, und Excel flippt aus und stürzt ab.

Wir haben zuvor ein Sonderzeichen in den Anführungszeichen ausprobiert. Das hat funktioniert, aber es gab ein Problem mit der Formatierung.

Können Sie eine XLSX-Datei STREAMEN? NEIN!

Grund: Eine XLSX-Datei ist eigentlich eine komprimierte Datei mit zwei Schlüsseldateien darin, eine mit dem Namen sharedStrings.xml, die eine Liste aller EINZIGARTIGEN Zellwerte ist, und eine andere, die eine Liste von Zellen ist, aber mit einem Zahlenverweis auf die erste sharedStrings.xml-Datei. Der gesamte Ordner ist komprimiert und siehe da, das ist Ihre XLSX-Datei. Eine XLSX-Datei muss alsogebaut, nicht gestreamt.

Antwort1

Es handelt sich zwar nicht wirklich um eine Antwort auf Ihre Frage, wohl aber auf die Ursache Ihres Problems.

Wenn Sie die Kürzung Ihrer Zahlen in Excel beim Öffnen einer CSV-Datei vermeiden möchten, können Sie ="0123456789"anstelle von verwenden 0123456789, als wäre es eine Formel.

Beispiel:

Name,Value,Value as text
Small int,01234,="01234"
Long int,0123456789,="0123456789"
Very long int,01234567890123456789,="01234567890123456789"

Ergebnis:

Ergebnis in Excel

Antwort2

Ich sehe einige Optionen, bin mir aber nicht sicher, ob sie funktionieren (übrigens habe ich keine Erfahrung mit XML):

Das Erste, was Sie abgelehnt haben, ist, die gesamte Tabelle wie Text zu formatieren. Ok, die Datei wäre zu groß.

Zweitens fügen Sie vor problematischen Zahlen "'" hinzu, wodurch sie in Text umgewandelt werden. Noch einmal...

Drittens: Das „neue“ XLSX-Format sollte die Dateigröße deutlich reduzieren können, viel besser als das XLS-Format.

Viertens: Ändern Sie das Format in Text und ändern Sie die Kodierung der gesamten Arbeitsmappe in ASCII oder etwas ähnlich Einfaches. Weitere Informationen hierhttps://help.surveygizmo.com/help/encode-an-excel-file-to-utf-8-or-utf-16(bei Bedarf werde ich hier weitere Informationen hinzufügen)

Ich bin nicht sicher, aber als letztes würde ich versuchen, in CSV zu konvertieren und dann die Kodierung in ASCII oder eine kleinere Kodierung zu ändern.

verwandte Informationen