正题前的唠叨
本人是才出来工作不久的小白菜一颗,技术很一般,总是会有遇到一些很简单的问题却不知道怎么做,这些问题可能是之前解决过的。发现这个问题,想着提升一下自己的技术水平,将一些学的新的‘好’东西记录下来,一是加深印象;二是以后可以作为参考;三是希望博友们可以提出不足和可以优化的地方,一起讨论。
本方法是通过ajax直接下载,当然也可以直接button下载,本方法类已经实现导入导出,请执行扩展。谢谢
效果图:点击导出按钮
前端 AJAX
//导出ececl
function btn_excel(ExeclID) {
var myConfirmCode = ' <div id="downloaddiv" style="display: none">\
<a id = "downloadRul" href = "" > \
<p>\
</p>\
</a >\
</div >';
$("body").append(myConfirmCode);
$.ajax({
type: "GET",
url: "../../tools/downloadExecl.ashx?action=GetExcel",
data: { "ExeclID": ExeclID, "TempName":"", "Outname":"" },
dataType: "json",
success: function (data) {
if (data.status == 1) {
$("#downloadRul").attr("href", data.msg);
$('#downloadRul>p').trigger("click");
$("#downloaddiv").remove();
} else {
$("#downloaddiv").remove();
alert("请登入系统");
}
}
});
// $("#downloaddiv").remove();
}
主要是导出excel并在浏览器下载下来。 但是会有不同的细微的需求差别。
进入正题
简单的需求描述 将查询出来已经转化好了的list xxx 的数据的某些列,导入到excel之中,并在浏览器中下载下来。
public void GetExcel(HttpContext context)
{
string ExeclID = MXRequest.GetString("ExeclID");//导出模板ID,管理sql
BLL.InfoExecl infoExeclbll = new BLL.InfoExecl();
infoExecl= infoExeclbll.GetModel(MyCommFun.Obj2Int( ExeclID));
if (Outname != "") {
infoExecl.titlename = Outname;
}
if (TempName != "")
{
infoExecl.title = TempName;
}
DataTable dt = new DataTable(); // DataTable 数据源
string