gpt4 book ai didi

java - 从 CSV 中排除字段

转载 作者:行者123 更新时间:2023-11-30 06:39:33 25 4
gpt4 key购买 nike

我正在使用 Univocity 解析器将结果集转换为 CSV。如果结果集中存在字段,我希望仅用户提供的字段出现在输出 CSV 中。如果结果集中不存在该字段,则相应的列应为空。我有一个限制,不能修改 SQL 查询。

我正在使用 exceptFields() 方法,但它使输出 CSV 中的字段值与分隔符一起为空。

示例:

Name, Age, Email
Joe, 20, joe@example.com

应用排除字段(“年龄”)后。由于 setHeaders() 方法有一些已知问题,因此我使用自己的逻辑来设置 header 。

Name, Email
Joe, , joe@example.com

但我希望它是这样的:

Name, Email
Joe, joe@example.com

有什么办法可以实现吗?

最佳答案

目前,编写器由您定义的 header 控制。字段选择只会让作者在未选择的列中打印出空白。

下一个版本将在写入时提供列重新排序,这应该可以满足您的需求。如果您可以使用 2.5.0-SNAPSHOT,它应该已经可以工作了:

ResultSet resultSet = statement.executeQuery("SELECT * FROM users");

CsvWriterSettings csvWriterSettings = new CsvWriterSettings();
csvWriterSettings.excludeFields("Age");
csvWriterSettings.setHeaderWritingEnabled(true);
csvWriterSettings.setColumnReorderingEnabled(true); //this does the trick

CsvRoutines csvRoutines = new CsvRoutines(csvWriterSettings);
csvRoutines.write(resultSet, output);

希望对你有帮助!

关于java - 从 CSV 中排除字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44623000/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com