上一篇文章提到看到同事导出excel的新方法,感觉比上一篇简单得多,所以想贴上来,与大家分享。
在后台拼数据,都是用的htmltable标签的写法:
string line = "text-align:center;border:thin solid windowtext;";//设置单元格格式 StringBuilder content = new StringBuilder(); content.Append("<table class='TableCssWithBorder'><tr>");//拼接一个html的table,把数据都写进table里 content.Append("<td style='" + line + "' rowspan='2'><b>班级</b></td>"); content.Append("<td style='" + line + "' colspan='2'><b>英语四级</b></td>"); content.Append("<td style='" + line + "' colspan='2'><b>英语六级</b></td>"); content.Append("<td style='" + line + "' colspan='2'><b>总计</b></td></tr> ");//标题 for (int j = 0; j < dt.Rows.Count; j++)//添加数据,dt.Rows是datatable中的 { content.Append("<tr>"); content.Append("<td style='text-align:center;" + line + "'>" + dt.Rows[j]["Classes"] + "</td></tr>");//主要是格式,数据这些仅供参考。 } content.Append("</table>"); string url = @"/UserReportFile/全部统计表/" + Guid.NewGuid().ToString() + "/";//url try { string fileSavePath = context.Server.MapPath(url); Directory.CreateDirectory(fileSavePath); File.WriteAllText(fileSavePath + "sum.xls", content.ToString(), Encoding.UTF8);//写到文件里 context.Response.Write(url + "全部报名统计表.xls");//生成! } catch { context.Response.Write("error"); }
前端的写法是
if (data.indexOf("xls") >= 0) { window.open("http://" + window.location.host + data);//用的传递数据的方法是ajax,对返回过来的数据进行判断,这样就能下载你导出的excel了
真的很简单!