是否有可能从impex脚本中将标题值显示为注释?
我的意思是,而不是我的最终CSV看起来像这样:
# product_id|name|product_url
YG3243H|My Product|/products/my-product
...
看起来像这样:
product_id|name|product_url
YG3243H|My Product|/products/my-product
...
这将是一项常规工作,所以我真的想避免做任何后处理工作。 这可能吗?
答案 0 :(得分:0)
是的,你可以!使用includeExternalData
的ImpexReader
方法。您也可以使用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。