La lecture de fichier Excel 2010 - les cellules en C#
Mise à JOUR 2
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", EXCELFILENAME);
string testCaseName = "test_case_2";
string query = String.Format("SELECT * from [{0}$] WHERE columns={1}", workbookName, testCaseName);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet); //<<ERROR
DataTable myTable = dataSet.Tables[0];
D'ERREUR:
Aucune valeur donnée pour un ou plusieurs paramètres obligatoires.
MISE À JOUR DE FIN
Mise à JOUR:
string connectionString = String.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", EXCELFILENAME);
string query = String.Format("select * from [{0}$]", workbookName);
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, connectionString);
DataSet dataSet = new DataSet();
dataAdapter.Fill(dataSet);
DataTable myTable = dataSet.Tables[0];
Comment lire les données à partir de cellules et de le stocker dans le tableau/la chaîne. J'ai terminé la lecture de la feuille de calcul, mais ne peut pas trouver mieux de faire
voici donc ma feuille excel ressemble:
Je devrais être en mesure de passer à la colonne dans mon cas test_case_1 ou test_case_2 etc... et de lire les colonnes de cette ligne particulière....
OriginalL'auteur Nick Kahn | 2012-08-30
Vous devez vous connecter pour publier un commentaire.
Concernant le filtrage.
Que vous utilisez OleDb pour votre récupération de données, rien ne vous empêche d'utiliser plus SQL avancé:
Vous pouvez utiliser les noms des colonnes pour le filtrage. Dans votre cas, le filtre est sur le colonnes champ. (btw. c'est une confusion de nom)
Aussi loin que je me souviens de l'en-tête de la table doit être dans la première rangée, vous pouvez avoir besoin de déplacer votre table d'une ligne vers le haut.
TestCaseName
au lieu decolumn
avoir d'erreur, mise à jour de ma question, jetez un oeil s'il vous plaît.
J'ai modifié mon code pour inclure les guillemets - je crois qu'ils sont nécessaires et je l'ai raté.
ressemble à son travail, mais sa frotte à la commande, donc si je suis la lecture de la colonne pour
test_case_2
alors que je suis l'obtention de la valeur de la cellule pourtest_case_1
OriginalL'auteur Juliusz
Je vous suggère de prendre un coup d'oeil à LinqToExcel. Il rend l'interrogation Excel .NET très facile.
test_case_1
je devrais être capable de lire seulement la ligne qui appartiennent àtest_case_1
.. basé sur ce que vous avez le code ci-dessus.. .dirait qu'il va lire toute la feuille excel.. n'est-ce pas ?Vous pouvez filtrer les données. J'ai édité mon code pour montrer comment. Il est très rapide mais il ne devrait pas être trop un problème pour tout lire.
donc, je dois utiliser la troisième partie de la dll hmmmm
Faire tout ce qui rend votre travail de codage et la maintenance de votre code plus facile... 🙂
OriginalL'auteur Enigmativity
Salut Abou Hamzah en tant que votre condition en lecture seule colonne requis, le code est ici que c'est un consol application pour la lecture de données excel
OriginalL'auteur Irfan Ali