无法在 HTML table 中正确填充列?

Cant populate the columns correctly in of an HTML table?

我有一个程序可以创建 HTML table 并将 table 中的数据填充到特定列中。目前我的程序将所有数据放在一列中,而将其他数据留空。需要帮助用所需数据填充每一列。我已经包含了部分代码以及我的输出图像 table。请注意他们是关于填充列的数据类型的其他问题,但我想先从上面概述的问题开​​始。

public class HtmlDataTable {

    private static final String FileDemo = null;



    public static void writehtmltable(Set<String> filenameSet){
        if (filenameSet == null)
            return;

        //creates table in the following path
        File htmltable = new File("C:/test/Output.html");

        try (BufferedWriter bw = new BufferedWriter(new FileWriter(htmltable))) {

            //write html data table
            bw.write(htmltop);
            // "<th>POM File Data</TH> <TH>Lib Directory Files</TH> <TH>Missing Jarfiles</TH>"; 

            for (String jarfilename : filenameSet) {

                String lines="<tr>  <td> </td>  <td> </td> <td>"+ jarfilename + "</td> </tr>"; // to fill Missing jarfile column

                String line="<tr>  <td> </td>  <td> </td> <td>"+ jarfilename + "</td> </tr>";// to fill lib directory file column
                String lin="<tr>  <td> </td>  <td> </td> <td>"+ jarfilename + "</td> </tr>";// to fill the Pom File column
                bw.write(lines);
                bw.write(line);
                bw.write(lin);

            }


            bw.write(htmlbottom);
        } catch (IOException e) {
            e.printStackTrace();


        }

    }

    // Code for HTML Table
    private static String htmltop = "<!DOCTYPE html>\n"+
                                     "<html>\n"+

                                        "<head>"+
                                        "<title>Jar Filename Existance Check</title>"+
                                        "<style>"+
                                        "table, th, td {"+
                                        "    border: 2px solid black;"+
                                        "}"+
                                        "</style>"+
                                        "</head>"+
                                        "<body>"+
                                        "<table>\n"+
                                        "   <tr>     <th colspan='100'>" +
                                        "<h3><br>Jarfilename Existance Check</h3>      </th>   </tr>" +
                                        "<th>POM File Data</th> <th>Lib Directory Files</th> <th>Missing Jarfiles</th>"; 


    private static String htmlbottom = "</table></body></html>"; 


    public static void main(String[] args) {
        new HtmlDataTable().writehtmltable(null);
    }


}

发生这种情况是因为您没有为这些列设置要显示的任何数据。 <td> </td>

你没有提到你想把什么数据放在那里。这些数据来自哪里。

就像<td>"+ jarfilename + "</td>一样,您需要在此处的空 td 标签中写一些东西(直接内容或一些 java 变量)<td> </td>

如果您只想在最远的列中显示一次内容:

for (String jarfilename : filenameSet) {
            String lines="<tr>  <td> </td>  <td> </td> <td>"+ jarfilename +  "</td> </tr>";
            bw.write(lines);
        }

如果您希望所有三列中的信息相同:

for (String jarfilename : filenameSet) {
            String lines="<tr>  <td>"+ jarfilename + "</td>  <td>"+ jarfilename + " </td> <td>"+ jarfilename +  "</td> </tr>";
            bw.write(lines);
        }

您看到相同的内容重复了三次 因为这就是您编写代码的目的 - 您正在将相同的内容写入 table三次。如果你删除额外的写命令(再说一次,我不能强调这一点,他们连续三次写相同的内容)你将看不到额外的table行。