2016-11-23 136 views
1

我正在研究使用PapaParse作为CSV解析器的CSV上传程序。对于我的CSV,我希望我的第一列充当解析数据的头部,而不是第一行。为了获得预期的结果,我必须在上传之前在编辑器中手动转换CSV。使用PapaParse解析带标头的转置CSV

其原因是我的用户发现,当标题位于第一列而非第一行时,编辑CSV要容易得多。有没有一种方法可以在PapaParse(甚至是PapaParse之外的JavaScript)中执行此操作?

if (file != null) { 
    Papa.parse(file, { 
     header: true, 
     complete: function (results, file) { 
      console.log("Parsing complete: ", results, file); 
     } 
    }); 
} 
+0

Sorry.Just意识到这个问题.. – Searching

回答

1

我建议用PapaParse解析数组,然后用JS对结果执行转置。

使用这种方法:https://stackoverflow.com/a/4492703/1625793

所以它看起来像transpose(result.data)

- 更新 -

const transposed = transpose(result.data) 
const headers = transposed.shift(); 
const res = transposed.map(row => row.reduce((acc, col, ind) => {acc[headers[ind]] = col; return acc}, {})) 
+0

我一直在寻找到更早但问题出现在我想使用标题的时候。当PapaParse输出结果时,标题不正确,因此进行换位并不能解决该问题。 – Dylan

+0

您可以举例说明什么输入(csv),您想要接收JSON的输出? –

+0

没关系,我明白你的意思 –