C#中,如何把Excel中的内容导出到txt文件中
平台是.net (CS,BS的都可以)
要求用一个Button事件选取Excel文件,然后另一个Button事件来生txt文件,过程中要对原Excel表中的内容进行加工处理,比如:把Excel中第一个表中的每行第一列内容和第二列内容中间去空格,然后加上","(逗号)
然后在指定位置生成txt文件.
平台是.net (CS,BS的都可以)
要求用一个Button事件选取Excel文件,然后另一个Button事件来生txt文件,过程中要对原Excel表中的内容进行加工处理,比如:把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
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
2 通过Excel.Application方式获取可用区域的所有Cell,写入文本文件