当前位置: 首页 > 知识库问答 >
问题:

用Apache POI动态创建Excel表中的行

巫马庆
2023-03-14

我正在编写一个程序来读取一个大的xml文件,并从中创建一个excel文件。每个节点的属性将是excel文件中的列标题。我创建了一个Dom对象并获得了NodeList。我需要遍历它,对于每个节点,我需要在excel表中添加一行,将节点的属性值作为列值。因此,在迭代时,我需要动态地创建行。我怎么做?在apache POI中,我没有看到添加创建行的功能,到目前为止,我看到的是每次都定义新行。我做不到,因为它有5000多个条目。基本上我想做的是:

    Node node = null;
    HSSFRow datarow = null;
    for (int i = 0; i < nodeList.getLength(); i++) {
        node = nodeList.item(i);
        datarow = spreadSheet.createRow(i);
        //set values for data row here, and add it.
        //so in the loop, next time the same variable will be assigned to spreadSheet.createRow(1) etc.
    } 

我知道createRow是从电子表格调用的,它将向它添加行。但是在循环中,同样的变量也会分配给其他行,所以我想最后我只得到1行。请在这方面给我指点。

共有1个答案

东郭和光
2023-03-14

尝试以下操作

   Node node = null;
    HSSFRow datarow = null;
    for (int i = 0; i < nodeList.getLength(); i++) {
        // On each loop you get the value of node item
        node = nodeList.item(i);
        //For every new node list you will create a row 
        datarow = spreadSheet.createRow(i);
        //Finally set the node value to the columns of the newly created Row
    } 

希望这能有所帮助!!

 类似资料:
  • 问题内容: 我在mysql上创建数据库。首先创建主体表,每个表平均有30列。日志表的标准是引用表的pk加上每列*2。像这样: 参考表: 日志表: 现在,我想要创建一个过程,在该过程中,我将表名作为参数传递,并生成表日志查询并执行它。 做这个的最好方式是什么? 问题答案: 为了使一个字符串代表一个表(或数据库)名称,您将需要用变量连接查询字符串,并在存储过程中准备/执行一条语句。这是一个基本示例。

  • 如何使用Java在透视表中设置标题。我必须使用apache POI在excel表中创建数据透视表。现在使用Java更改行和列标题标签。

  • 本文向大家介绍javascript 动态创建表格,包括了javascript 动态创建表格的使用技巧和注意事项,需要的朋友参考一下 第二种方法:

  • 用户可以将Excel文档保存为. xls或xml-table。结果是一个具有固定结构的xml-file,Excel可以用它纠正工作。 可以用java中的ApachePOI打开这种类型的excel文件吗? 事先谢谢你,安德烈。

  • 问题内容: 我对使用关系数据库还很陌生,所以我更喜欢使用一个好的ORM来简化事情。我花时间评估了不同的Python ORM,我认为我需要SQLAlchemy。但是,我已经陷入了精神上的死胡同。 我需要创建一个新表,以与在应用程序的播放器表中创建的播放器的每个实例一起使用。我想我知道如何通过元数据更改表的名称然后调用create函数来创建表,但是我不知道如何将其映射到新的动态类。 有人可以给我一些提

  • 问题内容: 我们需要创建SQLAlchemy类来访问多个外部数据源,这些数据源会随着时间的推移而增加。我们为核心ORM模型使用了声明式基础,并且我知道我们可以使用autoload = True手动指定新的ORM类,以自动生成映射。 问题是我们需要能够采用以下方式动态生成它们: 并动态地将其转换为如下所示: 我们不希望类的持久时间长于打开连接,执行查询然后关闭连接所需的时间。因此,理想情况下,我们可