以水平格式而不是垂直格式显示html/javascript生成的csv文件
下面的代码输出csv文件,如下所示 日期、价值 inp2:val2 09172013,1 08172013,2 inp3:val3 09172013,10.1 08172013,20 这里第一列是日期,第二列是值 我怎样才能表现得像你 日期inp2 inp3 09172013, 1 , 10.1 08172013,2,20 谢谢 代码以水平格式而不是垂直格式显示html/javascript生成的csv文件,javascript,html,csv,Javascript,Html,Csv,下面的代码输出csv文件,如下所示 日期、价值 inp2:val2 09172013,1 08172013,2 inp3:val3 09172013,10.1 08172013,20 这里第一列是日期,第二列是值 我怎样才能表现得像你 日期inp2 inp3 09172013, 1 , 10.1 08172013,2,20 谢谢 代码 <html"> <head> <title>JSON to CSV
<html">
<head>
<title>JSON to CSV</title>
<script src="json.js" type="text/javascript"></script>
<script type="text/javascript">
var str = '';
var json3 =
{"inp2:val2": {"data": [[09172013, 1], [08172013, 2]]}, "inp3:val3": {"data": [[09172013, 10.1], [08172013, 20.0]]}}
str +='Date,Value'+ '\r\n';
str +='inp2:val2,'+ '\r\n';
DownloadJSON2CSV(json3["inp2:val2"].data);
str +='inp3:val3,'+ '\r\n';
DownloadJSON2CSV(json3["inp3:val3"].data);
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] + ',';
}
line.slice(0,line.Length-1);
str += line + '\r\n';
}
}
window.open( "data:text/csv;charset=utf-8," + escape(str))
</script>
</head>
<body>
<h1>See the downloaded csv file ....</h1>
</body>
</html>
试一试
您可以尝试连接这两个数组,然后通过JSON-to-CSV方法传递它们。然后,在转换方法中,您可以创建一个对象,日期作为键,成对的值将是一个关联值的数组 这样,如果您有两个以上的关联值,那么您的代码将更加灵活 大概是这样的:
DownloadJSON2CSV(json3["inp2:val2"].data.concat(json3["inp3:val3"].data));
function DownloadJSON2CSV(objArray) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var merged = {};
for (var i = 0; i < array.length; i++) {
var arr = array[i];
if (!merged[arr[0]]) {
merged[arr[0]] = [];
}
merged[arr[0]].push(arr[1]);
}
for (var obj in merged) {
var line = obj;
var arr = merged[obj];
for (var i = 0; i<arr.length; i++) {
line += ','+arr[i];
}
str += line + '\r\n';
}
}
DownloadJSON2CSV(json3["inp2:val2"].data.concat(json3["inp3:val3"].data));
function DownloadJSON2CSV(objArray) {
var array = typeof objArray != 'object' ? JSON.parse(objArray) : objArray;
var merged = {};
for (var i = 0; i < array.length; i++) {
var arr = array[i];
if (!merged[arr[0]]) {
merged[arr[0]] = [];
}
merged[arr[0]].push(arr[1]);
}
for (var obj in merged) {
var line = obj;
var arr = merged[obj];
for (var i = 0; i<arr.length; i++) {
line += ','+arr[i];
}
str += line + '\r\n';
}
}