2010-12-08 144 views
1

我有excel文件与下面的列C#应用程序导入Excel文件内容到一个文本文件

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

我想编写 会读取Excel文件,并创建一个文本文件C#控制台应用程序 按照我的控制台应用程序输出

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

,我应该能够在Excel文件,开始和结束列每列来指定。

我将如何从头到尾编写应用程序?

+1

“从头到尾”的声音就像你希望别人做你的工作一样。 我强烈建议指出一个具体问题。 – 2010-12-08 22:25:40

回答

4

这样做的一种方法是查询到电子数据表

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(); 

我抓住从这里这个例子:http://forums.asp.net/t/1097496.aspx 另一个很好的来源是SO搜索:P Reading Excel files from C#

最后,我想你”我会喜欢这个:http://msdn.microsoft.com/en-us/library/dd920313.aspx
它包括一个例子使用LINQ AND和输出电子表格的例子到CONSOL

2

你可以使用Excel自动化出去的数据,然后只是把它写使用标准System.IO类的文件。

看到这里的细节:How to automate Microsoft Excel from Microsoft Visual C#.NET

如果你成功地检索一个行的所有值变成某种数组或列表的,然后你可以使用String.Join将其转换成一个制表符分隔字符串,然后只写每次一行到文件。

只得到一些列的值的某些部分,您可能能够使用String.Substring

您可能也可以使用OleDB来读取所有数据,因为它似乎是表格格式,可能会更快并且避免依赖于安装Excel。

相关问题