使用 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

进入你的文件。