Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
如何删除迭代器循环并允许cellDateType在xlsx java中工作?_Java_Excel_Iterator_Apache Poi_Xlsx - Fatal编程技术网

如何删除迭代器循环并允许cellDateType在xlsx java中工作?

如何删除迭代器循环并允许cellDateType在xlsx java中工作?,java,excel,iterator,apache-poi,xlsx,Java,Excel,Iterator,Apache Poi,Xlsx,大家好,各位专家, 目前我对迭代器循环有一些问题。我需要删除它,以便我的数据显示在xlsx excel工作表上,但我不确定如何删除它,以便我的代码不会出错。我怀疑这个错误可能在迭代器循环中。 现在,这是我的代码和一个图像链接,它看起来像现在 excel工作表中的数据之间不应该有空格,但显然有空格。第一列中没有任何数据,因为我没有任何数据输入网站。所以第一列可以为空 int r = 3; for (Iterator iter = Cells.iterator();ite

大家好,各位专家, 目前我对迭代器循环有一些问题。我需要删除它,以便我的数据显示在xlsx excel工作表上,但我不确定如何删除它,以便我的代码不会出错。我怀疑这个错误可能在迭代器循环中。 现在,这是我的代码和一个图像链接,它看起来像现在

excel工作表中的数据之间不应该有空格,但显然有空格。第一列中没有任何数据,因为我没有任何数据输入网站。所以第一列可以为空

      int r = 3; 
      for (Iterator iter = Cells.iterator();iter.hasNext();) {
           Object[]  _o = (Object[]) iter.next();
           currentRow = s.createRow(r);
      for(int colNum = 0; colNum < _col_cnt; colNum++){
         XSSFCell currentCell =currentRow.createCell(colNum);       

                if (CellDataType[c].equals("STRING")
                        || CellDataType[c].equals("VARCHAR")) {
                    String _l = (String) _o[colNum];
                    if (_l != null) {
                        currentCell.setCellValue(_l);
                        System.out.println("Data: " + _l);
                    }       
                }
intr=3;
for(迭代器iter=Cells.Iterator();iter.hasNext();){
Object[]_o=(Object[])iter.next();
currentRow=s.createRow(r);
for(int colNum=0;colNum<\u col\u cnt;colNum++){
XSSFCell currentCell=currentRow.createCell(colNum);
if(CellDataType[c].equals(“字符串”)
||CellDataType[c]。等于(“VARCHAR”)){
字符串_l=(字符串)_o[colNum];
如果(_l!=null){
currentCell.setCellValue(_l);
System.out.println(“数据:”+_l);
}       
}
硬代码(测试):

intr=3;
for(迭代器iter=Cells.Iterator();iter.hasNext();){
Object[]_o=(Object[])iter.next();
currentRow=s.createRow(r);
for(int colNum=0;colNum<\u col\u cnt;colNum++){
XSSFCell currentCell=currentRow.createCell(colNum);
currentCell.setCellValue(“Hello”);

你的问题不在于你在这里展示的代码,而在于你在前面的问题中展示的代码。两个建议

  • 如果您正确使用缩进,并将花括号对齐到它们应该在的位置,您几乎会立即看到错误
  • 如果使用调试器逐步检查代码,并查看
    r
    的值,您会立即发现问题

您的行
r++;
在内部循环内。这意味着它在外部循环的每次迭代中都会递增3次。您需要将
r++;
向下移动一行,这样它就在内部循环外,但在外部循环内。这样,它每行只递增一次,这就是您所需要的。

因此您正在写入将java中的某些内容转换成xslx文件,字符串周围会出现空格?很酷。你能将问题分为两部分吗?首先,你能在java代码中硬编码一些内容并将其写入xlsx。让我们知道这是否有效吗?@Hirak我实际上是从一个网站获得这些数据。我必须能够使用java并允许这些数据从要传输到xlsx的网站sheet@Hirak我已编辑硬代码并将其放置在“QN”上我很抱歉,如果它是错误的,硬代码不是你想要看到的,因为我在编码方面真的很弱。这就是现在的样子:你在第二行代码中提到的
单元格
对象是什么?天哪!代码的定位真的很重要!我一直认为这是for循环…谢谢你大卫!!没问题,祝你好运。
 int r = 3; 
            for (Iterator iter = Cells.iterator();iter.hasNext();) {
                Object[]  _o = (Object[]) iter.next();
                currentRow = s.createRow(r);
            for(int colNum = 0; colNum < _col_cnt; colNum++){
                XSSFCell currentCell =currentRow.createCell(colNum);       


                currentCell.setCellValue("Hello");