2010-12-08 22 views
1

Je fichier Excel avec des colonnes suivantesapplication C# pour importer Excel contenu du fichier dans un fichier texte

Field1 Field2 Field3, Field4 
=============================== 
123 4 abcd efghi 
456 5 aabb ffjjk 
789 7 ccdd ababa 

Je voudrais écrire l'application de la console aC# qui lirait le fichier Excel et de créer un fichier texte avec le sortie suivante

Field1 Field2 Field3, Field4 
=============================== 
123 4 ab hi 
456 5 aa jk 
789 7 cc ba 

dans mon application console, je devrais être en mesure de préciser par colonne dans le fichier Excel, le début et la fin des colonnes.

Comment écrire l'application du début à la fin?

+1

"du début à la fin" son s vous voulez que les autres fassent votre travail. Je suggère fortement de pointer vers un problème spécifique. –

+0

Cette "question" devrait être divisée en toutes les sous-parties du problème qui vous causent des problèmes. Savez-vous comment accéder aux données d'un fichier Excel? Savez-vous comment obtenir l'entrée de l'utilisateur dans une application de console? Savez-vous comment itérer, transformer et générer des données? – jball

+1

Pourquoi cela a-t-il été mis à jour? – jball

Répondre

4

Une façon de le faire est d'interroger pour diffuser la feuille

string strConn = "Provider=Microsoft.Jet.OleDb.4.0;data source=C:\\Inetpub\\wwwroot\\CS\\HostData.xls;Extended Properties=Excel 8.0;"; 
OleDbConnection objConn = new OleDbConnection(strConn); 

string strSQL = "SELECT * FROM [A1:B439]"; 
OleDbCommand objCmd = new OleDbCommand(strSQL, objConn); 

objConn.Open(); 
dgReadHosts.DataSource = objCmd.ExecuteReader(); 
dgReadHosts.DataBind(); 
objConn.Close(); 

i saisi cet exemple d'ici: http://forums.asp.net/t/1097496.aspx une autre bonne source est à la recherche SO: P Reading Excel files from C#

Enfin je vous pense » ll aime celui-ci: http://msdn.microsoft.com/en-us/library/dd920313.aspx
il comprend un exemple en utilisant linq AND et un exemple de sortie de la feuille de calcul à la console

2

Vous pouvez simplement utiliser Excel Automation pour extraire les données, puis l'écrire dans un fichier en utilisant les classes System.IO standard.

Voir ici pour plus de détails: How to automate Microsoft Excel from Microsoft Visual C#.NET

Si vous parvenez à récupérer toutes les valeurs d'une ligne dans une sorte de tableau ou d'une liste, vous pouvez ensuite utiliser String.Join pour convertir en une chaîne séparée onglet, puis il suffit d'écrire une ligne à la fois au fichier. Pour obtenir uniquement certaines parties des valeurs pour certaines colonnes, vous pouvez utiliser String.Substring.

Vous pouvez également utiliser OleDB pour lire toutes les données, car il semble être dans un format tabulaire, ce qui pourrait être plus rapide et éviter d'avoir à installer Excel.