示例:
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read);
IWorkbook workbook = null;
if (Path.GetExtension(filePath) == ".xlsx")
{
workbook = new XSSFWorkbook(fs);
}
else if(Path.GetExtension(filePath) == ".xls")
{
workbook = new HSSFWorkbook(fs);
}
fs.Close();
if (workbook == null)
{
return;
}
File.Delete(filePath);
ISheet sheet = workbook.GetSheetAt(0);
int iRowCount = sheet.LastRowNum + 1;
for (int i = 1; i < iRowCount; i++)
{
IRow row = sheet.GetRow(i);
ICell cell = row.GetCell(0);
if (cell == null) //规定第一列遇到空单元格时则认为是最后一行。目的是应对用delete清楚数据而不是删除单元格时行数问题
{
break;
}
string name = row.GetCell(0).StringCellValue;
string idCard = row.GetCell(3).StringCellValue;
if (row.Cells.Count < 5)
{
row.CreateCell(4);
}
row.Cells[4].SetCellType(CellType.String);
row.Cells[4].SetCellValue("Filled");
}
fs = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read);
workbook.Write(fs);
fs.Close();