我修改了this code以将JSON转换为.xls格式。代码实际上有效,但在MS Excel 2013中打开文件时,会抛出一个警告,指出文件格式和扩展名不匹配。
这是我到目前为止所拥有的:
var json3 = { "d": "[{\"Id\":1,\"UserName\":\"Sam Smith\"},{\"Id\":2,\"UserName\":\"Fred Frankly\"},{\"Id\":3,\"UserName\":\"Zachary Zupers\"}]" }
DownloadJSON2CSV(json3.d);
function DownloadJSON2CSV(objArray)
{
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var str = '';
for (var i = 0; i < array.length; i++) {
var line = '';
for (var index in array[i]) {
line += array[i][index] + '\t';
}
line.slice(0,line.Length-1);
str += line + '\r\n';
}
window.open( "data:application/vnd.ms-excel;charset=utf-8," + escape(str));
}
我错过了什么?
答案 0 :(得分:0)
.xls格式是一个复杂得多的(并且就此而言是专有的)文件格式 - 您所做的修改只修改了mime类型,而不是文件的实际内容。换句话说,该文件仍然是一个CSV文件,但你只是欺骗你的浏览器认为它是一个XLS文件。
有关mime类型的更多信息:http://en.wikipedia.org/wiki/Internet_media_type
对于您的问题的解决方案,如果您真的,真的需要XLS,最好的办法是找到一个提供API的在线服务,将CSV转换为XLS(谷歌搜索&#34; CSV到XLS在线&#34;可能帮助)。