Excel pouvez pas insérer plus de 255 caractères?
Je suis à l'aide de pilote OLE DB pour insérer plus de 255 caractères dans une feuille Excel, mais j'obtiens l'erreur:
Détails De L'Exception: System.Les données.OleDb.OleDbException: Le champ est trop petit pour accepter la quantité de données que vous avez tenté d'ajouter. Essayez de l'insérer ou coller des moins de données.
Semble de ce fil que c'est une limitation Excel. Même le site de Microsoft semble dire ici.
Donc cela signifie que je ne peux pas par programmation, mais je peux manuellement? Parce que je peux entrer plus de 255 caractères quand j'ai taper manuellement dans Excel. Est-il donc un Microsoft.ACE.OLEDB.12.0(AccessDatabaseEngine.exe pilote limitation?
OriginalL'auteur Dan | 2010-12-20
Vous devez vous connecter pour publier un commentaire.
Le lien que vous avez fait référence, est d'environ 256 colonnes et pas de caractères. Les 256 caractères problème qui est décrit ici avec une solution de contournement: http://support.microsoft.com/kb/213841
Lien seules réponses sont fortement déconseillés dans-pour de bonnes raisons.
OriginalL'auteur jvdbogae
J'ai trouvé un moyen plus efficace de gérer ce problème, mes références sont les 2 liens ci-dessous
http://support.microsoft.com/kb/316934
http://www.codeproject.com/Articles/37055/Working-with-MS-Excel-xls-xlsx-Using-MDAC-and-Oled
Fondamentalement, ne pas utiliser de carte de données, l'ensemble des données et paramètres à insérer des lignes dans Excel (cela n'a jamais fonctionné pour moi) au lieu de l'exécution de SQL insérer dans le code directement à l'aide de la commande objet
Ici ce que vous avez à faire
"CRÉER une TABLE WorkSheetName ( champ1 INT, champ2 MÉMO, champ3 ... );"
"INSERT INTO WorkSheetName (champ1, champ2, ...) VALUES (1234, 'Toute la longue chaîne ici...', ...)"
Déclarer un DbCommand pour exécuter le Create table et Insérer les instructions ci-dessus, je suis ici à l'aide de la commande obj à partir de l'entreprise de la bibliothèque
DbCommand dbCommand = m_dbConnection.CreateCommand();
dbCommand.CommandText = "Create Table ...";
dbCommand.CommandType = CommandType.Texte;
dbCommand.ExecuteNonQuery();
dbCommand.CommandText = "Insert Into ...";
dbCommand.CommandType = CommandType.Texte;
dbCommand.ExecuteNonQuery();
CREATE TABLE
instruction permet de créer une plage nommée du même nom (sans le $). Si jeINSERT INTO
la plage, alors il fonctionne.OriginalL'auteur Waleed
Ma solution à ce problème est d'ajouter un texte qui sa longueur est de plus de 255 caractères sur la première ligne de la colonne. OleDB permettra de traiter cette colonne MÉMO et alors, il peut insérer plus de 255 caractères dans une cellule.
OriginalL'auteur kingkong0924