2009-02-03 9 views
0

J'ai toujours eu ce problème et je n'ai jamais réussi à le comprendre.L'importation Excel renvoie des cellules vides

J'importe un fichier Excel (.xls) dans un jeu d'enregistrements asp. La plupart du temps, cela fonctionne très bien.

J'ai colonne avec les valeurs suivantes

4 
4 
5,6 
3 

Asp lit ces valeurs dans l'exception du 5,6. J'ai essayé de formater les cellules et cela ne fait aucune différence. Il semble que asp (ou excel) essaie de déterminer le type de la cellule en examinant la valeur. Pour une raison quelconque, il jette alors ce hoquet si certaines des cellules ne sont pas le même format que la majorité de l'autre.

+0

Quand vous dites ASP recordset, voulez-vous dire dans une base de données via ASP, en utilisant un jeu d'enregistrements déconnecté, ou en liant à Excel? – Fionnuala

Répondre

0

Avez-vous essayé de régler le 5,6 à 5,6?

+0

il est censé être 5,6 car il va dans la base de données en tant que '5,6'. la colonne est nvarchar. –

2

Le problème est que ADO analyse les 8 premières lignes et en fonction des données qu'il trouve dans chaque colonne, il définit le type de colonne. Donc, si vos 8 premières lignes contiennent des nombres, alors elle met cette colonne à numérique et renvoie null pour toutes les autres valeurs, par exemple si la neuvième ligne contient du texte ou une virgule. Voir http://blog.lab49.com/archives/196 pour quelques suggestions sur la façon d'éviter cela.

0

Essayez d'ajouter IMEX = 1 à votre chaîne de connexion.

Si cela ne résout pas, essayez de changer la valeur de clé de Registre suivante: HKLM/Software/Microsoft/Jet/4.0/Moteurs/Excel/ "TypeGuessRows" = dword: 00000000

Si vous un système 64 bits, la clé de registre sera à: HKLM/Software/Wow6432node/Microsoft/Jet/4.0/moteurs/Excel/ "TypeGuessRows" = dword: 00000000

Questions connexes