我想将数据从 SQL Server 拉取(通常我使用SqlDataReader
,但我愿意接受建议)导出到 Excel/CSV 文件中,并让 Web 应用程序的用户将其作为下载获取。
我想做这种 AJAX 风格,这样点击下载就不会导致重新加载/回发。
有人以前做过这个或知道如何做吗?
我想将数据从 SQL Server 拉取(通常我使用SqlDataReader
,但我愿意接受建议)导出到 Excel/CSV 文件中,并让 Web 应用程序的用户将其作为下载获取。
我想做这种 AJAX 风格,这样点击下载就不会导致重新加载/回发。
有人以前做过这个或知道如何做吗?
我认为这种机制会起作用。
有一个 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 }