Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

VARCHAR-Größenbeschränkung in Excel-Tabellen

Obwohl XLOPER12 jetzt eine Zeichenfolge mit einer Länge von bis zu 32.767 Unicode-Zeichen unterstützt, ist die Excel-C-API-Funktion xlfEvaluate (und andere) in Excel 2010 weiterhin auf eine Länge von 255 Zeichen beschränkt. Sie gibt xltypeErr zurück, wenn ihr eine XLOPER12 mit einer längeren Zeichenfolge übergeben wird als 255.

Alle Strings, die der Benutzer in Excel sieht, werden nun seit vielen Versionen intern als Unicode-Strings gespeichert. Unicode-Arbeitsblattzeichenfolgen können bis zu 32.767 (215 - 1) Zeichen lang sein und alle gültigen Unicode-Zeichen enthalten.

Als die C-API zum ersten Mal eingeführt wurde, waren Arbeitsblatt-Strings Byte-Strings, deren Länge auf 255 Zeichen begrenzt war, und die C-API spiegelte diese Einschränkungen wider. Mit Excel 2007 wird die C-API aktualisiert, um lange Excel-Unicode-Zeichenfolgen zu verarbeiten. Das bedeutet, dass korrekt registrierte DLL-Funktionen Unicode-Argumente akzeptieren und Unicode-Strings zurückgeben können.

Hinweis:Byte-Strings werden in der C-API aus Gründen der Abwärtskompatibilität immer noch vollständig unterstützt, sie haben jedoch immer noch die gleiche Beschränkung auf 255 Zeichen. Keine einfache Lösung, außer die Zeichenfolge zu kürzen oder die Zeichenfolge in mehrere Zellen aufzuteilen.