我想将数据从SQL Server拉(通常我使用SqlDataReader
,但我愿意接受建议)导出到Excel / CSV文件中,并让网络应用程序的用户将其作为下载。
我想做这个AJAX风格,因此点击下载不会导致重新加载/回发。
之前有人这样做过或者对如何做到了解?
答案 0 :(得分:1)
我认为这种机制可行。
点击一个HTML按钮调用javascript函数。
<input id="downloadbtn" type="button" value="Download" onclick="download();" />
功能看起来像这样:
var download = function() {
$.ajax({
url: "datamaker.aspx",
context: document.body
}).done(function(data) {
// parse response data, get file path
var filepath = ParseDataToGetFilePath(data);
// open the csv file path in a new window (which will begin download)
window.open(filepath, '_blank');
});
};
在服务器端,“datamaker.aspx”应连接到SQL Server,并创建CSV文件。创建CSV文件就像使用streamwriter创建任何其他文件一样简单,并在字段之间写入“逗号”。在本页末尾,在响应xml或json中输出文件名。
{ filepath: \path\datafile.csv }