如何从excel文件中获取价值?

时间:2013-06-05 16:12:11

标签: java excel apache-poi

我有一个像这样的excel文件:

excel file

我希望通过使用for循环获取这两个值,然后从for循环外部访问它们。 两者都将用作xml元素的值。 我写了这样的代码:

        String longSec = null;
        Double long_sec = null;
        int column_long_sec = 33;
        int c;

        for(c=1; c<=2; c++) {

                row = sheet.getRow(c);

                    long_sec = row.getCell(column_long_sec).getNumericCellValue();
                    longSec = Double.toString(long_sec);
        }   

        Element sid_long_sec = document.createElement("SID_LONG_SEC");
        document.appendChild(sid_long_sec);
        sid_long_sec.appendChild(document.createTextNode(longSec));

代码提供如下输出:

<SID_LONG_SEC>54.61</SID_LONG_SEC>

但是,我想代码输出如下:

<SID_LONG_SEC>48.94</SID_LONG_SEC>
<SID_LONG_SEC>54.61</SID_LONG_SEC>

怎么做?

任何想法或帮助将不胜感激

最诚挚的问候,

尤努斯

2 个答案:

答案 0 :(得分:4)

您正在循环外创建元素,因此它只接受longSec的最后一个值。

Element sid_long_sec = document.createElement("SID_LONG_SEC");
document.appendChild(sid_long_sec);
sid_long_sec.appendChild(document.createTextNode(longSec));

应该在循环内

答案 1 :(得分:2)

如何在循环中完成所有操作?

    String longSec = null;
    Double long_sec = null;
    int column_long_sec = 33;
    int c;

    for(c=1; c<=2; c++) {
        row = sheet.getRow(c);
        long_sec = row.getCell(column_long_sec).getNumericCellValue();
        longSec = Double.toString(long_sec);
        Element sid_long_sec = document.createElement("SID_LONG_SEC");
        document.appendChild(sid_long_sec);
        sid_long_sec.appendChild(document.createTextNode(longSec));
    }   

如果要将XML处理保留在循环之外,则必须将从excel文件中读取的值存储在某个容器(数组或集合)中,然后创建另一个循环,在该循环中迭代该容器并写入XML的值。