将网格数据导出到CSV文件,并使用Javascript/JQuery将其保存为扩展名.CSV
我发现了几个代码,可以帮助我生成CSV文件。但我无法使用.csv扩展名保存它 我正在使用以下代码生成一个csv文件,但我需要将该文件以.csv作为扩展名保存将网格数据导出到CSV文件,并使用Javascript/JQuery将其保存为扩展名.CSV,javascript,jquery,Javascript,Jquery,我发现了几个代码,可以帮助我生成CSV文件。但我无法使用.csv扩展名保存它 我正在使用以下代码生成一个csv文件,但我需要将该文件以.csv作为扩展名保存 var ExportToCSV= function (gridData, fileName, humanize, ignore){ var csv = '', data = [], ignore = [];
var ExportToCSV= function (gridData, fileName, humanize, ignore){
var csv = '',
data = [],
ignore = [];
if (!ignore) {
ignore = [];
}
//ignore added datasource properties
var commonIgnore = ["_events", "idField", "_defaultId", "constructor", "init", "get",
"_set", "wrap", "bind", "one", "first", "trigger",
"unbind", "uid", "dirty", "parent"];
ignore = $.merge($.merge([], ignore), commonIgnore);
var data= gridData._data;
//add the header row
if (data.length > 0) {
for (var col in data[0]) {
//do not include inherited properties
if (!data[0].hasOwnProperty(col) || ($.inArray(col, ignore) > -1)) {
continue;
}
if (humanize) {
col = col.split('_').join(' ').replace(/([A-Z])/g, ' $1');
}
col = col.replace(/"/g, '""');
csv += '"' + col + '"';
if (col != data[0].length - 1) {
csv += ",";
}
}
csv += "\n";
}
//add each row of data
for (var row in data) {
for (var col in data[row]) {
//do not include inherited properties
if (!data[row].hasOwnProperty(col) || ($.inArray(col, ignore) > -1)) {
continue;
}
var value = data[row][col];
if (value === null) {
value = "";
} else if (value instanceof Date) {
value = kendo.toString(kendo.parseDate(value),"dd/MM/yyyy");
} else {
value = value.toString();
}
value = value.replace(/"/g, '""');
csv += '"' + value + '"';
if (col != data[row].length - 1) {
csv += ",";
}
}
csv += "\n";
}
//TODO replace with downloadify so we can get proper file naming
window.open("data:application/csv;charset=utf-8," + escape(csv));
})
有许多方法可以使用服务器端代码(如php、asp.net、java)来解决此问题。但是,有谁能帮我通过使用客户端脚本(即使用Javascript/JQuery)实现同样的目标呢
非常感谢您的帮助。因为浏览器是沙盒的,所以您无法保存.csv-但是您可以使用api将其发送到服务器、Dropbox或类似应用程序,然后为用户提供下载文件的链接。因为浏览器是沙盒的,您将无法保存.csv-但是您可以使用api将其发送到服务器、Dropbox或类似应用程序,然后向用户提供下载文件的链接。请关注这篇关于Chrome的优秀博文(尽管FF尚未对其进行测试):
我仍在搜索IE9上的有效方法(ActiveX和execCommand()不适用于我)。最后手段:Flash、大量插件(下载等)关注这篇优秀的Chrome博客文章(尽管FF尚未测试): 我仍在搜索IE9上的有效方法(ActiveX和execCommand()不适用于我)。最后手段:Flash、大量插件(下载等)