我目前正在尝试构建一个angular应用程序,该应用程序能够接受具有任何列数和任何列名的.csv文件,并操作该.csv以反映一个由3列组成的模板,该模板具有要上传到后端的特定列名。
例如:
date | location | customer | order_value | order_id
或
Date | loc | cust | ord_v | id | other..value..fields |....
并将其更改为标准
| customer | order_value | order_id |
用于后端计算。
我目前的方法是预览输入的.csv并提示用户输入匹配的字段。例如:
customer: cust
order_value: ord_v
order_id : id
并在使用Papaparse之后使用这些输入映射到标准JSON文件。
假设this.data是一个JSON文件,其标头映射到输入.csv
mapped_data = this.data.map( u => ({ customer : u.input_cust, order_value : u.input_order_v, order_id : input_id})
这是不起作用的,因为"输入"变量是字符串,它们需要是"u"文件的属性。
data["property"]
运算符等效于data.property
运算符。这可以在map((中完成,如下所示,以基于预设变量(在我的例子中是来自前端的输入变量(同时处理多个变量。下面是一个例子;
mapped_data = this.data.map( u => ({ customer : u[input_cust], order_value : u[input_order_v], order_id : u[input_id]})