1
我使用Univocity解析器將結果集轉換爲CSV。如果字段存在於結果集中,我只希望用戶提供的字段出現在輸出CSV中。如果該字段不存在於結果集中,則相應的列應該爲空。我有一個不修改SQL查詢的限制。從CSV中排除字段
我使用的是excludeFields()方法,但它使輸出CSV中的字段值與分隔符一起留空。
例如:
Name, Age, Email
Joe, 20, [email protected]
施加排斥域excludeFields後( 「年齡」)。由於setHeaders()方法有一些已知問題,因此我使用自己的邏輯來設置標題。
Name, Email
Joe, , [email protected]
但我希望它是這樣的:
Name, Email
Joe, [email protected]
有沒有什麼辦法可以實現呢?
感謝您的持續支持。當前我正在做的一個解決方法是在將結果集寫入它之後將StringWriter轉換爲InputStream:csvRoutines.write(resultSet,stringWriter)。將此InputStream饋送到CsvParser:csvParser.parse(new InputStreamReader(inputStream)),並調用csvParserSettings.selectFields(「Name」,「Email」),並再次使用CsvWriter寫入輸出csv。我不確定它是否是唯一有效的方法,但是如果結果集很大,我會發現在此過程中需要消耗大量時間。 – HyperioN
我們什麼時候可以期待2.5.0的發佈?因爲我不認爲在生產環境中使用2.5.0-SNAPSHOT是不明智的。 – HyperioN
您的解決方法可以正常工作。版本2.5.0將在一個月左右發佈。 –