Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将excel文件内容导入文本文件的C#应用程序_C#_Visual Studio 2010 - Fatal编程技术网

将excel文件内容导入文本文件的C#应用程序

将excel文件内容导入文本文件的C#应用程序,c#,visual-studio-2010,C#,Visual Studio 2010,我有以下列的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 h

我有以下列的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文件中的每列、开始列和结束列


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

您可以使用Excel Automation获取数据,然后使用标准的
System.IO
类将其写入文件

详情请参见此处:

如果您设法将一行的所有值检索到某种数组或列表中,则可以使用
String.Join
将其转换为以制表符分隔的字符串,然后一次只向文件写入一行

要仅获取某些列的某些部分值,可以使用
String.Substring


您还可以使用OleDB来读取所有数据,因为它似乎是表格格式,这样可以更快,避免依赖于Excel的安装。

您可以使用Excel Automation来获取数据,然后使用标准的
System.IO
类将其写入文件

详情请参见此处:

如果您设法将一行的所有值检索到某种数组或列表中,则可以使用
String.Join
将其转换为以制表符分隔的字符串,然后一次只向文件写入一行

要仅获取某些列的某些部分值,可以使用
String.Substring


您还可以使用OleDB来读取所有数据,因为它似乎是表格格式,这样可以更快,避免依赖于Excel的安装。

一种方法是查询电子表格

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();
我从这里抓取了这个例子: 另一个好的来源是搜索SO:P

最后,我想你会喜欢这个:

它包括一个使用linq的示例,以及将电子表格输出到控制台的示例。执行此操作的一种方法是查询电子表格

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();
我从这里抓取了这个例子: 另一个好的来源是搜索SO:P

最后,我想你会喜欢这个:
它包括一个使用linq的示例,以及将电子表格输出到控制台的示例“从头到尾”听起来像是希望其他人完成您的工作。我强烈建议指出一个具体的问题。这个“问题”应该被分解成问题中给你带来麻烦的所有子部分。您知道如何从excel文件中访问数据吗?您知道如何在控制台应用程序中获取用户输入吗?你知道如何迭代、转换和输出数据吗?“从头到尾”听起来像是你希望别人做你的工作。我强烈建议指出一个具体的问题。这个“问题”应该被分解成问题中给你带来麻烦的所有子部分。您知道如何从excel文件中访问数据吗?您知道如何在控制台应用程序中获取用户输入吗?您知道如何迭代、转换和输出数据吗?