(急-在线等,高手帮忙)高分解决ASP.NET中的导出为EXCEL的问题(ASP.NET+C#)
各位高手朋友们你们好
近日在做项目时关于将DATASET中的数据导出为Excel的问题颇为伤神,
我是用一般的导出方法,但是基本上就是将DataSet中的数据原样导出,一点样式也没有,导出来后还要加工方可打印,样式也十分难看.
但不知是否有什么控件或者模板可以指定样式.导出后的数据具有样式.各位给予指教,谢谢!!在线等!!
[解决办法]
xlSheet.get_Range( "D4:D4 ", "D4:D4 ").Borders.LineStyle = 1;//设置边框
xlSheet.get_Range( "D4:D4 ", "D4:D4 ").Borders.color//设置颜色
[解决办法]
不是 在给你发个
Excel.Workbook book= excel.Workbooks[1] ;
//Excel.Worksheet xlSheet=(Excel.Worksheet)book.Worksheets[1];
//xlSheet.get_Range( "D4:D4 ", "D4:D4 ").Borders.LineStyle = 1;//加框线
[解决办法]
直接把1个控件的内容导出去。有样式,速度也很快。
protected void btnExport_Click(object sender, EventArgs e)
{
xportToExcel(fileName, divReport,Page);
}
/// <summary>
/// 导出到excel
/// </summary>
/// <param name= "Filename "> 导出的文件名 </param>
/// <param name= "ctl "> 要导出内容的控件 </param>
/// <param name= "page "> Page </param>
public void ExportToExcel(string Filename, Control ctl, Page page)
{
page.Response.Clear();
// 防止中文内容为乱码
page.Response.ContentEncoding = System.Text.Encoding.GetEncoding( "utf-8 ");
page.Response.Cache.SetCacheability(HttpCacheability.NoCache);
page.Response.ContentType = "application/vnd.xls ";
//可令中文文件名不为乱码
page.Response.AppendHeader( "content-disposition ", "attachment;filename=\ " " + System.Web.HttpUtility.UrlEncode(Filename, System.Text.Encoding.UTF8) + ".xls\ " ");
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
ctl.RenderControl(htw);
page.Response.Write(sw.ToString());
page.Response.End();
}
[解决办法]
你可以把dataset绑定到gridview上,把格式设定好,然后倒入,代码如下:
public override void VerifyRenderingInServerForm(Control control)
{
//这个方法一定要有
//base.VerifyRenderingInServerForm(control);
}
protected void btnConvert_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.Charset = "gb2312 ";
//下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开
//filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc || .xls || .txt ||.htm
string strHeader = "post ";
Response.AppendHeader( "Content-Disposition ", "attachment;filename= " + strHeader + ".xls ");
Response.ContentEncoding = System.Text.Encoding.GetEncoding( "gb2312 ");
//Response.ContentType指定文件类型 可以为application/ms-excel || application/ms-word || application/ms-txt || application/ms-html || 或其他浏览器可直接支持文档
Response.ContentType = "application/ms-excel ";
// this.EnableViewState = false;
// 二、定义一个输入流
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
// 三、将目标数据绑定到输入流输出
//oHtmlTextWriter.WriteEncodedText(Server.UrlDecode(strHeader));
grdExcel.RenderControl(oHtmlTextWriter);
//this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件
Response.Write(oStringWriter.ToString());
Response.End();
}