带标题的产品CSV文件

时间:2015-01-23 22:03:49

标签: csv export export-to-csv hybris

是否有可能从impex脚本中将标题值显示为注释?

我的意思是,而不是我的最终CSV看起来像这样:

# product_id|name|product_url
YG3243H|My Product|/products/my-product
...

看起来像这样:

product_id|name|product_url
YG3243H|My Product|/products/my-product
...

这将是一项常规工作,所以我真的想避免做任何后处理工作。 这可能吗?

1 个答案:

答案 0 :(得分:0)

是的,你可以!使用includeExternalDataImpexReader方法。您也可以使用CSVReader来更加自定义。

使用这两种解决方案,您都可以设置linesToSkip参数。假设您的标题位于第一行,您可以将其设置为1

如果第一列包含数据,请不要忘记将columnOffset设置为-1,因为impex通常从第0列开始,因此数据通常从第1列开始。

您可能还想将delimiter参数设置为|,因为默认值为;


导入

使用CSVReader

INSERT_UPDATE Product;code[unique=true];...
"#% CSVReader reader = new CSVReader( ImpExManager.class.getResourceAsStream(""myDataFile.csv""), ""utf-8"" );"
"#% impex.includeExternalData( reader, 1, -1 );"

仅限ImpexReader

INSERT_UPDATE Product;code[unique=true];...
"#% impex.includeExternalData(ImpExManager.class.getResourceAsStream(""myDataFile.csv""), ""utf-8"", ''|'', 1, -1 );"

导出

您无法取消注释"标题,但你可以跳过它。

"#% impex.setTargetFile( ""file.csv"", false, 1, -1 );"

如果需要,您也可以从Java执行此操作,请查看Export API

false表示标题 NOT 写为对目标数据文件第一行的注释

有关详细信息,请查看ImpEx API