Begrenzung der Excel-Zellenlänge

34072
rlb.usa

Excel weigert sich, einige der von mir programmierten Dateien zu öffnen. Ich denke, was passiert, ist, dass es nervt, weil eine bestimmte Spalte sehr lange Zeichenfolgen (bis zu 1850 Zeichen) hat, aber wenn ich die Zeichenfolgen kürzer mache (900 Zeichen), wird sie geöffnet.

Frage 1: Welches ist die längste Saite, die ich in eine Zelle einfügen kann? Einige Google-Ergebnisse sagen 1024 oder 7.000ish, aber ich habe 1000 zu lang gefunden.

Frage 2: Ich habe versucht, meine Dateien sowohl im XML- als auch im XLS-Format zu schreiben, aber beide haben das gleiche Problem mit der Zeichenfolgenlänge. Gibt es ein Format, das Excel lesen kann, damit ich meine 1850-Längenzeichenfolgen anpassen kann?

6
das ist ein großer Freakin # KronoS vor 14 Jahren 0
1.800ish ist die Größe von drei bescheidenen Absätzen. rlb.usa vor 14 Jahren 0
Sie müssen Ihre Version von Excel angeben, da dies eines der vielen Dinge ist, die sich zwischen den Versionen unterscheiden. Jarvin vor 14 Jahren 0
Es ist MS Excel 2007 rlb.usa vor 14 Jahren 0
Welchen Code verwenden Sie zum Erstellen? Möglicherweise liegt das Problem in dem Dateityp, der nicht angegeben wird. daneshjai vor 8 Jahren 0

5 Antworten auf die Frage

6
Lunatik

Sogar Excel 2003 kann 32.767 Zeichen in einer Zelle problemlos verarbeiten, aber Versionen vor Excel 2007 zeigen nur die ersten 1024 Zeichen in einer Zelle ( MS-Quelle ) an.

Möglicherweise ist ein bekanntes Problem aufgetreten, bei dem Zeichenfolgen auf 911 Zeichen gekürzt werden. Ich habe dies bereits bei der Datenübertragung über eine ADO-Verbindung erlebt.

Der folgende Link bezieht sich auf Excel 2003, klingt aber sicherlich wie das gleiche Problem, das Sie haben.

http://support.microsoft.com/kb/818808/en-us

3
Jarvin

Laut diesem gab es ein 1k Zeichen pro Zelle Grenze in Excel 2003, die pro Zelle Grenze in Excel 2007 zu einem 32k Zeichen erhöht Wenn Ihr Programm programmaticaly ist eine Excel 2003 (.xls) und kein Excel 2007 (.xlsx) Datei erstellen Das könnte das Problem verursachen, da das .xls-Format nicht mehr als 1 KB Zeichen pro Zelle unterstützt.

Sie sollten keine Probleme mit einem XML- oder XLS-Format haben, das direkt in Excel 2007 integriert ist, da das Limit von Excel 2003 nicht betroffen sein sollte, aber ich kann es nicht testen, da ich kein Excel 2007-Besitzer bin war trotzdem hilfreich.

Ich denke, Ihre Antwort ist richtig, aber sie hilft mir nicht und lehnt immer noch meine 1.800 << 32.000 Zeichen ab. Ich werde abwarten und sehen, ob sich irgendjemand etwas einfallen lässt. rlb.usa vor 14 Jahren 0
3
Adam Butler

Offizielle Excel-Grenzwerte sagen, dass es gut sein sollte:

http://office.microsoft.com/de-de/excel-help/excel-specifications-and-limits-HP010073849.aspx

Das ist der richtige Link. Anonymous Type vor 11 Jahren 0
1
Tom Pham

Wenn Sie Ihre Daten von ADO erhalten, versuchen Sie es mit den folgenden Codes. Es hat für mich funktioniert.

Activecell.value=LEFT(YourRecordset("FieldName"), LEN(YourRecordset("FieldName"))) 

Grundsätzlich erhalten Sie den gesamten Inhalt des Feldes, aber auf andere Weise. Da die Länge des Inhalts über 900 (nach meiner Erfahrung) ist, müssen Sie einen alternativen Weg wählen. Sie müssen nicht bei der LEFTFunktion bleiben ; die RIGHTfunktion funktioniert auch.

1
LSC

In Excel 2013 (und ich nehme an, in Excel 2007 und höher) ist die Länge einer in einer einzelnen Zelle angezeigten Zeichenfolge 1024 Zeichen. Ich habe dies durch Zufall entdeckt, als ich eine längere in VBA erstellte Zeichenfolge in eine einzige Excel-Zelle geschrieben hatte. Diese Zelle war die letzte Zelle in der Spalte, die Daten enthielt. Die übliche Anzeige einer langen Zeichenfolge in Zellen rechts endet nach 1024 Zeichen. Die Funktion len hat jedoch die tatsächliche Größe der Zeichenfolge korrekt zurückgegeben. Wenn Sie die Zeichenfolge (eine Liste mit E-Mail-Adressen) kopieren und in Outlook einfügen, erhalten Sie die richtige Zeichenfolge. Es scheint, dass der längere String, der in Excel 2007 und später verfügbar ist, einwandfrei funktioniert, jedoch nicht vollständig angezeigt wird.