重新排序没有互操作对象的Excel表

时间:2011-02-10 21:07:04

标签: c# excel export export-to-excel web-based

我正在用C#编写一个程序,需要按其中一列重新排序工作表。目前我无法使用Office Interop对象来控制文件,所以我一直在使用Excel Data Reader(http://exceldatareader.codeplex.com/)阅读它以读取文件,作为我的输出始终位于csv,tsv或SQL表中。关于如何将DataTable保存为excel或者是否存在在不使用Interop的情况下对其重新排序的命令的任何想法?

1 个答案:

答案 0 :(得分:1)

有一种方法可以通过网格将数据表保存到Excel,而无需使用Interop。 我想你在谈论一个应用程序,所以你必须引用System.Web库。

代码:

// Create the DataGrid and perform the databinding
var myDataGrid = new System.Web.UI.WebControls.DataGrid();
myDataGrid.HeaderStyle.Font.Bold = true;
myDataGrid.DataSource = myDataTable;
myDataGrid.DataBind();

string myFile = "put the name here with full path.xls"
var myFileStream = new FileStream( myFile, FileMode.Create, FileAccess.ReadWrite );

// Render the DataGrid control to a file
using ( var myStreamWriter = new StreamWriter( myFileStream ) )
{
    using (var myHtmlTextWriter = new System.Web.UI.HtmlTextWriter(myStreamWriter ))
    {
        myDataGrid .RenderControl( myHtmlTextWriter );
    }
}