java - 如何在 Java 中将表格数据格式化为文本?

标签 java text formatting

我想从任意数据集对象模型中生成格式良好的表格文本。在 Java 中是否有一个很好的库可以做到这一点?

具体来说,我想要的输出格式类似于命令行数据管理工具,例如 mysql 的 CLI。示例:

+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| name    | varchar(100) | YES  |     | NULL    |       |
| release | year(4)      | YES  |     | NULL    |       |
| studio  | varchar(50)  | YES  |     | NULL    |       |
| review  | varchar(50)  | YES  |     | NULL    |       |
| gross   | int(11)      | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+

一个主要挑战是在开始遍历数据之前我不会自动知道最大列宽。此外,还有很多边缘情况,例如处理非常大的值长度和大量的行和列。

如果我必须自己构建它,我想我会使用 String.format,并且我需要在开始输出之前预先分析完整的数据集。虽然这是一个非常低级的编码,所以我很想找到一个已经解决这个问题的好库。

最佳答案

查看 TableFormatter :它似乎可以执行您想要格式化表格数据的操作。源代码也可用。您可以使用流畅的界面方法将行和单元格附加到表中。下面是一个例子:

TableFormatter tf = new SimpleTableFormatter(true) // true = show border
        .nextRow()
            .nextCell()
                .addLine("Field")
            .nextCell()
                .addLine("Type")

因此它将以正确的格式构建单元格并相应地调整空白。它还允许您在单元格内进行基本的文本对齐(中心、顶部、底部)

关于java - 如何在 Java 中将表格数据格式化为文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/913765/

相关文章:

java - Java 中的物理模拟

c - 如何在c中分割文本文件?

linux - 在 Linux 中使用 Nasm 在控制台中的文本中使用箭头键导航

html - CSS 格式问题 - 网页设计的新手

c - printf float 以尾随零的数量作为变量

java - 为什么我无法检测到 ScrollView 内的滑动?

java - 使用 radioButtons 更新 ListView 适配器输入

java - spring framework如何辅助应用开发?

java - 在 Eclipse 中更改文本颜色

java - 公式单元格上的 JExcelApi 货币格式 - 文件错误