Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中将表格数据格式化为文本?_Java_Text_Formatting - Fatal编程技术网

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

如何在Java中将表格数据格式化为文本?,java,text,formatting,Java,Text,Formatting,我想从任意数据集对象模型生成格式良好的表格文本。有没有一个好的库可以在Java中实现这一点 具体来说,我希望输出的格式类似于命令行数据管理工具,如用于mysql的CLI。例如: +---------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+--------------+------+-----+------

我想从任意数据集对象模型生成格式良好的表格文本。有没有一个好的库可以在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 tf = new SimpleTableFormatter(true) // true = show border
        .nextRow()
            .nextCell()
                .addLine("Field")
            .nextCell()
                .addLine("Type")

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

trac.inamik.com/trac/jtable_格式受GPL许可证的约束,在某些情况下不适用

另一个选项(Apache 2许可证):

对于那些感兴趣的人(即双许可GPL和MIT),使其对泛型友好并删除所有编译警告


请注意,我使用Java 7菱形运算符,因此要使其与Java 6兼容,需要在列表声明中添加类型。

谢谢Jon,这看起来正是我要搜索的!8-]看起来iNamik的许可证已更改为双重许可证-MIT和GPL