Convertir Excel Gamme à ADO.NET DataSet ou DataTable, etc
J'ai une feuille de calcul Excel qui va s'asseoir sur un lecteur réseau partagé. Il doit être accessible par mon Winforms en C# 3.0 de l'application (de nombreux utilisateurs peuvent utiliser l'application et en cliquant sur cette feuille de calcul dans le même temps). Il y a beaucoup de données sur une seule feuille de calcul. Cette répartition des données dans des domaines que j'ai nommé sous forme de fourchettes. J'ai besoin d'être en mesure d'accéder à ces plages individuellement, de retour de chaque plage d'un dataset, puis le lier à une grille.
J'ai trouvé des exemples d'utilisation de OLE et ont reçu ces au travail. Cependant, j'ai vu quelques mises en garde sur l'utilisation de cette méthode, en plus au travail, nous avons été à l'aide de Microsoft.Bureau de.Interop.Excel comme la norme à ce jour. Je n'ai pas vraiment envie de s'écarter de cette à moins que j'ai. Nos utilisateurs vont utiliser Office 2003 sur d'aussi loin que je sache.
Je peux obtenir de la gamme j'ai besoin avec le code suivant:
MyDataRange = (Microsoft.Office.Interop.Excel.Range)
MyWorkSheet.get_Range("MyExcelRange", Type.Missing);
OLE moyen était agréable car il permettrait de prendre ma première ligne et de les transformer en colonnes. Mes plages (12 au total) sont pour la plupart différents les uns des autres selon le nombre de colonnes. Ne sais pas si cette info aurait une incidence sur les recommandations.
Est-il possible d'utiliser d'Interopérabilité et d'obtenir le retour de gamme dans un dataset?
OriginalL'auteur user295197 | 2010-03-16
Vous devez vous connecter pour publier un commentaire.
Je ne sais pas à propos d'une fonction intégrée, mais il ne devrait pas être difficile de l'écrire vous-même. Pseudo:
C'est du pseudo-code...
OriginalL'auteur Igby Largeman
Je ne sais pas quel type de données que vous avez.Mais pour un excel de données comme indiqué dans ce lien http://www.freeimagehosting.net/image.php?f8d4ef4173.png, vous pouvez utiliser le code suivant pour charger dans la table de données.
OriginalL'auteur wonde
Il vaut la peine de prendre un coup d'oeil à NPOI quand il s'agit de lire/écrire les fichiers XLS Excel 2003. NPOI est un épargnant de vie.
Je pense que vous allez à la parcourir votre gamme et de créer des datarow à mettre dans votre DataTable.
Cette question sur StackOverflow fournit plus de ressources:
Créer Excel (.XLS et .XLSX) à partir de fichiers C#
OriginalL'auteur Leniel Maccaferri
Cette méthode ne fonctionne pas bien lorsque la même colonne de la feuille excel réparti contient à la fois du texte et des chiffres. Par exemple, si
Range("A3")=Hello
etRange("A7")=5
alors il ne lit que le Salut et la valeur deRange("A7")
estDBNULL
OriginalL'auteur John