您的位置:首页 > 其它

导出数据到Excel方法(web 不需要安装office)

2011-10-25 08:55 344 查看
///<summary>

///导出数据到Excel方法

///</summary>

///<paramname="ds">要导出的数据集合</param>

///<paramname="fileName">导出的文件名称</param>

protectedvoidCreateExcel(DataTabledt,stringfileName)

{

StringBuilderstrb=newStringBuilder();

strb.Append("<htmlxmlns:o=\"urn:schemas-microsoft-com:office:office\"");

strb.Append("xmlns:x=\"urn:schemas-microsoft-com:office:excel\"");

strb.Append("xmlns=\"http://www.w3.org/TR/REC-html40\">");

strb.Append("<head><metahttp-equiv='Content-Type'content='text/html;charset=gb2312'>");

strb.Append("<style>");

strb.Append(".xl26");

strb.Append("{mso-style-parent:style0;");

strb.Append("font-family:\"TimesNewRoman\",serif;");

strb.Append("mso-font-charset:0;");

strb.Append("mso-number-format:\"@\";}");

strb.Append("</style>");

strb.Append("<xml>");

strb.Append("<x:ExcelWorkbook>");

strb.Append("<x:ExcelWorksheets>");

strb.Append("<x:ExcelWorksheet>");

strb.Append("<x:Name>SheetAssets</x:Name>");

strb.Append("<x:WorksheetOptions>");

strb.Append("<x:DefaultRowHeight>285</x:DefaultRowHeight>");

strb.Append("<x:Selected/>");

strb.Append("<x:Panes>");

strb.Append("<x:Pane>");

strb.Append("<x:Number>3</x:Number>");

strb.Append("<x:ActiveCol>1</x:ActiveCol>");

strb.Append("</x:Pane>");

strb.Append("</x:Panes>");

strb.Append("<x:ProtectContents>False</x:ProtectContents>");

strb.Append("<x:ProtectObjects>False</x:ProtectObjects>");

strb.Append("<x:ProtectScenarios>False</x:ProtectScenarios>");

strb.Append("</x:WorksheetOptions>");

strb.Append("</x:ExcelWorksheet>");

strb.Append("<x:WindowHeight>6750</x:WindowHeight>");

strb.Append("<x:WindowWidth>10620</x:WindowWidth>");

strb.Append("<x:WindowTopX>480</x:WindowTopX>");

strb.Append("<x:WindowTopY>75</x:WindowTopY>");

strb.Append("<x:ProtectStructure>False</x:ProtectStructure>");

strb.Append("<x:ProtectWindows>False</x:ProtectWindows>");

strb.Append("</x:ExcelWorkbook>");

strb.Append("</xml>");

strb.Append("");

strb.Append("</head><body><tablealign=\"center\"style='border-collapse:collapse;table-layout:fixed'><tr>");

if(dt.Rows.Count>0)

{

//写列标题

intcolumncount=dt.Columns.Count;

for(intcolumi=0;columi<columncount;columi++)

{

strb.Append("<tdstyle='text-align:center;'><b>"+dt.Columns[columi]+"</b></td>");

}

strb.Append("</tr>");

//写数据

for(inti=0;i<dt.Rows.Count;i++)

{

strb.Append("<tr>");

for(intj=0;j<dt.Columns.Count;j++)

{

if(dt.Columns[j].DataType==Type.GetType("System.Decimal"))

{

strb.Append("<tdclass='xl26'style='text-align:right;'>"+dt.Rows[i][j].ToString()+"</td>");

}

else

{

strb.Append("<tdclass='xl26'>"+dt.Rows[i][j].ToString()+"</td>");

}

}

strb.Append("</tr>");

}

}

strb.Append("</table></body></html>");

Response.Clear();

Response.Buffer=true;

Response.Charset="GB2312";

Response.AddHeader("Content-Disposition","attachment;filename="+System.Web.HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8)+".xls");

Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文

Response.ContentType="application/ms-excel";//设置输出文件类型为excel文件。

this.EnableViewState=false;

Response.Write(strb);

Response.End();


}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: