使用 UniVocity 将带有集合的对象写入 CSV
Write Object with Collection to CSV using UniVocity
给定两个类
public class Inventory {
private List<InventoryLine> lines;
}
和
public class InventoryLine {
private String itemName;
private int quantity;
private String description;
}
我想打印以下 CSV 文件(使用“,”作为分隔符,但为了可见性,我在这里使用了空格):
Name Quantity Description
Book 4 A book
Watch 0 Gold watch
Phone 8 iPhone 8
使用 Conversion 注释和 class 实现提供的 Conversion 接口是否可以创建上述 CSV(通过打印 Inventory class)?我看到他们提供了带有列表的示例,但他们使用分隔符将它们合并到一列中。我没有看到任何关于这种情况的例子。
这里是图书馆的作者。解析器不处理 类 的层次结构。你只能写列表本身:
new CsvRoutines().writeAll(inventory.getLines(), InventoryLine.class, new File("/path/to/your.csv"), "UTF-8");
希望对您有所帮助。
如果您考虑使用其他库。
试试这个
maven dependency
<dependency>
<groupId>io.github.francisfernandez28</groupId>
<artifactId>libraries</artifactId>
<version>0.2.5-SNAPSHOT</version>
</dependency>
用法:
String csvString = CSVUtils.generateCSVStringFromListOfModel(inventory.getLines(),",");
然后写
csvString
进入你的文件。
给定两个类
public class Inventory {
private List<InventoryLine> lines;
}
和
public class InventoryLine {
private String itemName;
private int quantity;
private String description;
}
我想打印以下 CSV 文件(使用“,”作为分隔符,但为了可见性,我在这里使用了空格):
Name Quantity Description
Book 4 A book
Watch 0 Gold watch
Phone 8 iPhone 8
使用 Conversion 注释和 class 实现提供的 Conversion 接口是否可以创建上述 CSV(通过打印 Inventory class)?我看到他们提供了带有列表的示例,但他们使用分隔符将它们合并到一列中。我没有看到任何关于这种情况的例子。
这里是图书馆的作者。解析器不处理 类 的层次结构。你只能写列表本身:
new CsvRoutines().writeAll(inventory.getLines(), InventoryLine.class, new File("/path/to/your.csv"), "UTF-8");
希望对您有所帮助。
如果您考虑使用其他库。
试试这个
maven dependency
<dependency>
<groupId>io.github.francisfernandez28</groupId>
<artifactId>libraries</artifactId>
<version>0.2.5-SNAPSHOT</version>
</dependency>
用法:
String csvString = CSVUtils.generateCSVStringFromListOfModel(inventory.getLines(),",");
然后写
csvString
进入你的文件。