2010-11-16 566 views
7

我正在使用POI来处理大学项目的Excel文件中的数据。我无法在现有的Excel中插入新列。我试图使用Apache POI:如何在Excel文件中插入列

Cell c = createCell(int column); 
c.setCellValue("someValue"); 

但似乎如果列已经存在,它会替换现有的数据。我需要的是当我插入新的一列时,将所有其他列向右移一列。

我在互联网上搜索,但我找不到解决方案。有没有办法做到这一点,而不是迭代行中的所有单元格并逐一移动它们?

回答

6

据我所知,POI不直接支持这一点。您可以创建工作表的副本并复制数据,为您的新列留出空间。您还需要考虑是否需要重新编写超出插入点的列中的任何公式以及使用这些单元格的任何公式。

1

根据我从Google获得的“poi插入列”中的this post,POI目前没有API来执行此操作。您需要遍历行并自行调整所有引用。

+0

听起来像插入一列可能是昂贵的,除了最小的工作簿。 – IceArdor 2015-05-06 07:16:07