C#中,如何把Excel中的内容导出到txt文件中
平台是.net (CS,BS的都可以)
 
要求用一个Button事件选取Excel文件,然后另一个Button事件来生txt文件,过程中要对原Excel表中的内容进行加工处理,比如:把Excel中第一个表中的每行第一列内容和第二列内容中间去空格,然后加上","(逗号)
然后在指定位置生成txt文件.

解决方案 »

  1.   

    把EXCEL另存为文本文件,把分给我
      

  2.   

    我以前用VB.net做过导入Excel,但是txt没做过,把代码给你参考下
            Dim tw As New System.IO.StringWriter()
            Dim hw As New System.Web.UI.HtmlTextWriter(tw)
            strSQL = "select * from table1"        Dim da As New SqlDataAdapter(strSQL, DBConnection.GetConnection)
            da.Fill(ds, "OIU")
            DataGrid.DataSource = ds
            DataGrid.DataBind()
            Response.Clear()
            Response.Charset = "gb2312"
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312")
            Response.AddHeader("content-disposition", "attachment;filename= OIUReport.xls")
            'Response.Charset = ""
            Response.Cache.SetExpires(DateTime.Now.AddSeconds(60))
            Response.Cache.SetCacheability(HttpCacheability.Private)
            Response.ContentType = "application/vnd.ms-excel"
            Response.Charset = ""        Me.EnableViewState = False
            Label2.Visible = True
            DataGrid.RenderControl(hw)
            Response.Write(tw.ToString())
            Response.End()
            Label2.Visible = False
    将数据放在datagrid再放入excel
      

  3.   

    你可以不可以把Excel当成数据源,把数据放在DataSet中(这样肯定可以做到),然后把这些数据,以流的形式传给一个txt文件(没试过,猜测而已)
      

  4.   


    http://www.cnblogs.com/xiyurui/archive/2006/03/23/356764.html
    首先将excel.exe copy 到 ..\Microsoft Visual Studio .NET 
                            2003\SDK\v1.1\Bin目录下
                            利用.net 中带的工具在命令提示符下执行tlbimp 
                            excel.exe.这样就不会因为你的Excel是xp或2000的不同要去找不同的*.olb文件,还有一点就是因为在2000以后的版本中没有了excel9.olb这个文件了。                        通过执行tlbimp excel.exe后我们会得到excel.dll文件。                        只要有了这个Excel.dll,现在我们就能使用Excel的各种操作函数了。 
    一点说明:操作Excel的时候,可能会发生Excel进程被锁定,无法退
    出,解决方法是在保存完并关闭myBook(工作簿)后,别关闭Excel进
    程(//myApp.Quit();)。这样的结果是服务器上始终有一个Excel的
    进程。可能会出现asp_net用户操作Excel的权限不够,配置Dcom。运
    行Dcomcnfg.exe,找到Excel应用程序,配置其属性,身份验证级别
    选"无",身份标识选"交互式用户",安全性页面,启动和访问均给
    everyone。注意:查看当前进程中是否有Winword进程存在,如果有且
    不能被结束,那么重启动计算机。再次运行你的代码即OK。这样以后
    就不会出现权限不够的情况了。
    在Visual Studio .NET中建立一个C# WinForm工程. 
    添加Microsoft Excel Object Library引用: 
    右键单击Project , 选“添加引用” 
    在COM 标签项,选中 locate Microsoft Excel Object Library 
    using Excel = Microsoft.Office.Interop.Excel;
    using System.Reflection;Excel.Application excel= new Excel.Application();    int rowIndex=1;
        int colIndex=0;    excel.Application.Workbooks.Add(true);
                
        
        System.Data.DataTable table=ds.Tables[0] ;
        foreach(DataColumn col in table.Columns)
        {
         colIndex++;    
         excel.Cells[1,colIndex]=col.ColumnName;                
        }    foreach(DataRow row in table.Rows)
        {
         rowIndex++;
         colIndex=0;
         foreach(DataColumn col in table.Columns)
         {
          colIndex++;
          excel.Cells[rowIndex,colIndex]=row[col.ColumnName].ToString();
         }
        }
        excel.Visible=false;    
       
        excel.ActiveWorkbook.SaveAs("C:/A.XLS",Excel.XlFileFormat.xlExcel9795,null,null,false,false,Excel.XlSaveAsAccessMode.xlNoChange,null,null,null,null,null);            
                
        //wkbNew.SaveAs strBookName
        //excel.Save(strExcelFileName);
        excel.Quit();
        excel=null;
                
        GC.Collect();//垃圾回收
    回收垃圾
    public void KillWordProcess() 

    int ProceedingCount = 0; 
    try 

    System.Diagnostics.Process [] ProceddingCon = System.Diagnostics.Process.GetProcesses(); 
    foreach(System.Diagnostics.Process IsProcedding in ProceddingCon) 

    if(IsProcedding.ProcessName.ToUpper() == "WINWORD") 

    ProceedingCount += 1; 
    IsProcedding.Kill(); 



    catch(System.Exception err) 

    MessageBox.Show(err.Message + "\r" +"(" + err.Source + ")" + "\r" + err.StackTrace); 


    #endregion
      

  5.   

    两种方法1  通过ado.net,oledb方式访问得到所有数据的datatable,写入文本文件
    2  通过Excel.Application方式获取可用区域的所有Cell,写入文本文件