我的excel文件包含以下列
Field1 Field2 Field3, Field4
===============================
123 4 abcd efghi
456 5 aabb ffjjk
789 7 ccdd ababa
我想写一个c#控制台应用程序 将读取excel文件并使用。创建文本文件 以下输出
Field1 Field2 Field3, Field4
===============================
123 4 ab hi
456 5 aa jk
789 7 cc ba
在我的控制台应用程序中,我应该能够在excel文件中指定每列,即开始和结束列。
我如何从头到尾编写应用程序?
答案 0 :(得分: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的示例
答案 1 :(得分:2)
您可以使用Excel Automation获取数据,然后使用标准System.IO
类将其写入文件。
详情请见此处:How to automate Microsoft Excel from Microsoft Visual C#.NET
如果您设法将一行的所有值检索到某种数组或列表中,则可以使用String.Join
将其转换为制表符分隔的字符串,然后一次只写一行文件。
要仅获取某些列的某些部分值,您可以使用String.Substring
。
您也可以使用OleDB
读取所有数据,因为它似乎采用表格格式,可以更快,并避免依赖于安装Excel。