基于文本的java电子表格单元

基于文本的java电子表格单元,java,Java,我正在为我的java类开发一个基于文本的电子表格项目。我有实际的电子表格打印出来,我有一个数组形式的单元格输入。问题是让单元格输入显示在电子表格中 电子表格通过循环打印,看起来类似于: | A | B | C | D | E | F | G | --|---|---|---|---|---|---|---| 1| | | | | | | | --|---|---|---|---|---|---|---| 2| | | | |

我正在为我的java类开发一个基于文本的电子表格项目。我有实际的电子表格打印出来,我有一个数组形式的单元格输入。问题是让单元格输入显示在电子表格中

电子表格通过循环打印,看起来类似于:

    | A | B | C | D | E | F | G |
  --|---|---|---|---|---|---|---|
   1|   |   |   |   |   |   |   |
  --|---|---|---|---|---|---|---|
   2|   |   |   |   |   |   |   |
  --|---|---|---|---|---|---|---|
   3|   |   |   |   |   |   |   |
  --|---|---|---|---|---|---|---|
   4|   |   |   |   |   |   |   |
  --|---|---|---|---|---|---|---|
   5|   |   |   |   |   |   |   |
  --|---|---|---|---|---|---|---|
关于如何从数组中获取输入以在电子表格中打印,有什么想法吗?我并不是真的在寻找解决问题的直接方法,只是朝着正确的方向努力。任何帮助都将不胜感激

电子表格通过System.out.print制作

另外,我本来会发布电子表格的屏幕上限,但我的帐户级别较低。对不起,质量太低了

编辑:我不能发布准确的代码来打印现在保存在另一台计算机上的电子表格,但我可以提供一个描述。基本上,我在for循环中打印电子表格网格的每一行。字母是循环中更改的字符变量。数字也一样,只是它们是int变量。整个过程只是在控制台中打印字符

编辑:以下是打印电子表格的代码:

for (char x = 'A' ; x <= 'G' ; x++) {
    System.out.print("      " + x + "       |");
}
System.out.println("");
System.out.print("---+--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+");
System.out.println("");
if (i == 0) {
    // 10-99 digit loop
    for (int j = 1 ; j <= length ; j++) {
        if (j >= 10) {
                System.out.print("" + j + " |              |              |              |              |              |              |              |");
            System.out.println("");
            System.out.print("---+--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+");
            System.out.println("");
        }
        else {
            // 1-9 digit loop
            System.out.print(" " + j + " |              |              |              |              |              |              |              |");
            System.out.println("");
            System.out.print("---+--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+" + "--------------+");
            System.out.println("");
        }
    }
}

它不是很好的优化雪人将处理,一旦我得到一切工作,但它确实打印的电子表格的权利

您需要将列字母转换为整数索引,以便将其用作二维数组的索引。可能还需要从行索引中减去1,才能将另一个索引放入二维数组。

您没有发布完整的示例,因此我必须做出一些假设

我假设你的数组是2D数组。因此,单元格A1引用数组中的[0][0]

为了使列具有正确的宽度,您需要扫描数组并确定最大的字符串,因为我假设数组包含字符串。这是这列的宽度。如果你不明白这一点,你只会得到一个混乱的格式

也许更好的选择是使用制表符,而不使用这些行

无论如何,这意味着打印出的-s的数量将是动态的。你应该使用一个实用的方法。它接受列名,循环遍历数组中该列的所有元素,确定列的宽度,最后以字符串形式返回多个-s。注:必须考虑表中的任何间距

现在,如果表格的轮廓大小合适,我们可以在2D数组中循环,打印出|和元素

下面是一个不计算列大小的非常基本的示例:

    String [][] tableData = { {"abc", "def"}, {"ghi", "jkl"} };

    // The header
    System.out.println("+-----+-----+-----+");
    System.out.println("|     |  A  |  B  |");
    System.out.println("+-----+-----+-----+");

    int rowNumber = 1;
    // The body
    for(String[] row : tableData)
    {
        // Numbers
        System.out.print("|  " + rowNumber + "  ");

        // Elements
        for(String element : row)
        {
            System.out.print("| " + element + " ");
        }

        // New line for the end of the row
        System.out.println("|");
        rowNumber++;
    }

    // Footer
    System.out.println("+-----+-----+-----+");
在本例中,我们不必计算需要多少间距和-s,因为我们已经知道数据的大小正好是3个字符宽。这将打印出:

+-----+-----+-----+
|     |  A  |  B  |
+-----+-----+-----+
|  1  | abc | def |
|  2  | ghi | jkl |
+-----+-----+-----+

本应发布电子表格的屏幕上限,但我的帐户级别较低。对不起,质量太低了。谢天谢地。这里的代码比屏幕截图更有用。你的是什么?对不起,我忘了提,但我确实把字母转换成整数了。基本上,我想知道如何使用输入更新打印的电子表格。例如,如果我输入A3=100,我需要在电子表格中显示100。这不是你的问题所说的!我不会回答你的问题,以防你再改变它!这就是问题所说的,关于如何将数组中的输入打印到电子表格中,有什么想法吗?您发布的代码实际上并没有将字母转换为整数。你可能想重新考虑我的回答是否有用。谢谢你,迈克,你给了我一些很好的信息。我想我已经有了一个想法,我可以使这项工作。另外,我很抱歉我的帖子不清楚这是我的第一篇。