EPPlus - Lire Le Tableau Excel
À l'aide de EPPlus, je veux lire un tableau excel, puis stocker tout le contenu de chaque colonne dans ses correspondants List
. Je veux qu'il reconnaisse le titre du tableau et de catégoriser le contenu sur cette base.
Par exemple, si mon tableau excel est comme ci-dessous:
Id Name Gender
1 John Male
2 Maria Female
3 Daniel Unknown
Je veux que les données à stocker dans List<ExcelData>
où
public class ExcelData
{
public string Id { get; set; }
public string Name { get; set; }
public string Gender { get; set; }
}
Afin que je puisse appeler le contenu en utilisant le nom de la rubrique. Par exemple, quand je fais ceci:
foreach (var data in ThatList)
{
Console.WriteLine(data.Id + data.Name + data.Gender);
}
Qu'il va me donner ce résultat:
1JohnMale
2MariaFemale
3DanielUnknown
C'est vraiment tout ce que j'ai:
var package = new ExcelPackage(new FileInfo(@"C:\ExcelFile.xlsx"));
ExcelWorksheet sheet = package.Workbook.Worksheets[1];
var table = sheet.Tables.First();
table.Columns.Something //I guess I can use this to do what I want
S'il vous plaît aider 🙁
J'ai passé de longues heures à la recherche pour le code d'exemple quant à ce que je puisse apprendre de lui, mais en vain. Je comprends aussi ExcelToLinQ est qu'il a réussi mais il ne peut pas reconnaître la table.
OriginalL'auteur Liren Yeo | 2016-04-15
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas d'origine, mais que faire si vous utiliser ce que j'ai mis dans ce post:
Comment analyser excel rangées à l'arrière à l'aide de types de EPPlus
Si vous voulez pointer à une table seul, il aura besoin d'être modifié. Quelque chose comme cela devrait le faire:
Ici est une méthode de test:
A donné ceci dans la console:
Juste être prudent si vous le champ Id est un nombre ou une chaîne dans excel depuis la classe attend une chaîne de caractères.
Dans la méthode d'essai d'erreur "Erreur de 1 'OfficeOpenXml.Table.ExcelTable' ne contient pas une définition pour 'ConvertTableToObjects' et aucune méthode d'extension 'ConvertTableToObjects' acceptant un premier argument de type 'OfficeOpenXml.Table.ExcelTable' a pu être trouvé (vous manque une directive using ou une référence d'assembly?)"
l'erreur est de dire simplement qu'il ne peut pas trouver la méthode d'extension à tous. Assurez-vous qu'il est déclaré dans un endroit où le test peut l'obtenir.
OriginalL'auteur Ernie
Ne sais pas pourquoi, mais aucune des solutions ci-dessus pour moi.
Si le partage de ce qui a fonctionné:
Mais comment est-ce répondre à l'OP de la question? Il a été demandé au sujet de prendre un Tableau dans Excel et de convertir en .NET objets - automatiquement avec les Génériques. Cette traverse les lignes/colonnes, mais nécessiterait manuellement mappage des valeurs de propriétés.
OriginalL'auteur Suresh Kamrushi
C'est ma version de travail. Notez que les outils de résolution de code n'est pas indiqué, mais sont un tour sur mon application qui permet de colonnes pour être résolu, même si elles sont nommées de façon légèrement différente dans chaque feuille de calcul.
OriginalL'auteur jwize
Code ci-dessous va lire des données excel dans une table de données, qui est converti à la liste des datarow.
'ExcelPackage' does not contain a definition for 'ToDataTable' and no extension method 'ToDataTable' accepting a first argument of type 'ExcelPackage' could be found (are you missing a using directive or an assembly reference?)
OriginalL'auteur Fenil Patel
J'ai eu une erreur sur la première réponse, j'ai donc modifié le code de la ligne.
S'il vous plaît essayer mon nouveau code, c'est de travailler pour moi.
Comment appeler cette fonction? veuillez consulter ci-dessous le code;
FundraiserStudentListModel ici:
OriginalL'auteur Sadik Ali