2015-03-02 51 views
1

我的代码: 如何克隆XSSFCellApache POI - 当我在迭代循环行我只是想clone/copy目前XSSFCell和想要做的新建小区的一些变化。如何在Apache的POI克隆X​​SSFCell

  XSSFRow myRow = (XSSFRow)rowIter.next(); 
      Iterator cellIter = myRow.cellIterator(); 
      List cellRowList = new ArrayList(); 

      while (cellIter.hasNext()) 
      { 
       XSSFCell myCell = (XSSFCell)cellIter.next(); 
       try 
      { 
       XSSFCell newCell = myCell //(How to clone or copy a new one) 

      } catch(Exception e) { 
       syso(e); 
      }    

      }  
+0

你打算如何处理这个克隆的细胞?你的意思是你想让不同的单元具有相同的风格?相同的价值?同样的风格+价值? – Gagravarr 2015-03-02 12:18:54

+0

我想要的风格细胞,但具有不同的单元格值,所以我试图克隆和设置一个新的值(而不是创建新的工作簿,表,行和单元格 - 试图克隆它) – 2015-03-02 12:42:27

+0

我跳过余下的代码 - 阅读后细胞价值我会收集并做我的操作 – 2015-03-02 12:44:34

回答

0

您可以使用cloneStyleFrom克隆原始工作簿中的样式。

XSSFRow myRow = (XSSFRow) rowIter.next(); 
Iterator cellIter = myRow.cellIterator(); 
List cellRowList = new ArrayList(); 

while (cellIter.hasNext()) { 
    XSSFCell originalCell = (XSSFCell) cellIter.next(); 
    XSSFCell myCell = originalCell; 
    try { 
     // XSSFCell newCell = myCell; //(How to clone or copy a new one) 
     XSSFCellStyle style = workbook.createCellStyle(); // the XSSFWorkbook from which you clone 
     style.cloneStyleFrom(originalCell.getCellStyle()); 
     myCell.setCellStyle(style); 

    } catch (Exception e) { 
     syso(e); 
    } 
}