使用NPOI删除Excel工作表的列(1.2.5.0)

时间:2012-07-16 14:18:48

标签: .net excel npoi

我正在尝试查找列并删除它,但我不知道删除列的方法是什么。

我尝试删除单元格,代码如下。但我想删除完整列。

HSSFRow row = (HSSFRow)Sheet.GetRow(r);
HSSFCell newCell = (HSSFCell)row.GetCell(nIndex);
row.RemoveCell(newCell);

上面的代码只是清除单元格的内容。不要移除细胞。我现在循环所有行以清除特定列的所有单元格。

现在,我正在搜索一个名为列移位的东西,但似乎没有一种方法。如果有一个NPOI方法用于列移位,请告诉我。

.net Framework-3.5 VS 2008 NPOI(1.2.5.0)

1 个答案:

答案 0 :(得分:2)

现在我只能想到一种方法:清除列和从其他列复制值。因此该列不会被删除,而是向右移动(到其他空列)。我不知道它如何适用于公式,但它应该是简单的文本或数字 示例代码:

FileStream fs = new FileStream(filePaths[i], FileMode.Open, FileAccess.ReadWrite);
HSSFWorkbook templateWorkbook = new HSSFWorkbook(fs, true);
ISheet sheet = templateWorkbook.GetSheet("Input");
for (int h = 0; h <= sheet.LastRowNum; h++)
{
    IRow row = sheet.GetRow(h);
    row.RemoveCell(row.GetCell(cellIndex)); //Remove cell value
    row.Cells[cellIndex].SetCellValue(row.Cells[cellIndex + 1].StringCellValue); //Copy right column values to left
}