Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 如何从excel文件中获取值?_Java_Excel_Apache Poi - Fatal编程技术网

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

Java 如何从excel文件中获取值?,java,excel,apache-poi,Java,Excel,Apache Poi,我有这样一个excel文件: 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(colum

我有这样一个excel文件:

        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));
我想通过使用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>
但是,我希望代码给出如下输出:

<SID_LONG_SEC>54.61</SID_LONG_SEC>
<SID_LONG_SEC>48.94</SID_LONG_SEC>
<SID_LONG_SEC>54.61</SID_LONG_SEC>
怎么做

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

致以最良好的祝愿


尤努斯

在循环中完成这一切怎么样

    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。

如何在循环内完成这一切

    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。

在循环之外创建元素,所以它只取longSec的最后一个值

这个


应该在循环内部

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

这个


应该在循环中

谢谢您的回复。我知道,但是我需要在循环之外创建元素:谢谢你的回复。我知道,但我需要在循环之外创建元素:谢谢你的回复和建议,但是你能帮我编写代码吗?@yunus,不客气。我确实包含了代码。或者您想要替代实现吗?我指的是按照您的建议执行的代码,即将从excel文件读取的值存储在一个容器中,然后创建另一个循环来迭代该容器并将值写入XML。我被困在那里了。如果你有替代的实现,那是什么样的替代?谢谢你的回复和建议,但是你能在代码方面提供帮助吗?@yunus不客气。我确实包含了代码。或者您想要替代实现吗?我指的是按照您的建议执行的代码,即将从excel文件读取的值存储在一个容器中,然后创建另一个循环来迭代该容器并将值写入XML。我被困在那里了。如果您有替代实现,那是什么样的替代方案?