1

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

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

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

看起来像这样:

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

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

4

1 回答 1

0

是的你可以!使用的includeExternalData方法ImpexReader。您还可以将它与CSVReader更可定制的 a 一起使用。

使用这两种解决方案,您都可以设置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表示标题不会作为注释写入目标数据文件的第一行

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

于 2015-01-25T11:13:07.773 回答