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