怎样将Datatable中的数据直接导入到Excel模板上
一行一列的来吧.给你点提示:
using Microsoft.Office.Core;
using Microsoft.Office.Interop.Excel;
...
...
Microsoft.Office.Interop.Excel.Application myExcel=new Microsoft.Office.Interop.Excel.Application();
myExcel.Application.Workbooks.Add(true);
myExcel.Visible=true;
..
..
for(int row=0;row<=this.ds.Tables[0].Rows.Count-1;row++)
{
for(int col=0;col<=this.ds.Tables[0].Columns.Count-1;col++)
{
myExcel.Cells[row+4,col+1]="'"+ds.Tables[0].Rows[row].ItemArray[col].ToString();
}
}
这个是把datatable上的数据直接绑定到datagird上面,然后再从这个上面下载到excel上.
private void btnDownLoad_Click(object sender, System.EventArgs e)
{
if(this.dg.Items.Count>0)
{
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;
CultureInfo myCItrad = new CultureInfo("ZH-CN",true);
HtmlGenericControl div=new HtmlGenericControl();
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
div.InnerHtml = oStringWriter.ToString();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.dgRoleMenu.RenderControl(oHtmlTextWriter);
div.InnerHtml =oStringWriter.ToString();
Response.Write(div.InnerText);
Response.End();
}else return;
}