如何在Excel电子表格中使用NPOI C#

我需要使用C#中的NPOI将工作表中的所有单词转换为大写; 我找不到这样做的方法。

  • 在应用大写之前:Cell [1; 1] = stackoverflow
  • 应用大写字母后:Cell [1; 1] = STACKOVERFLOW

我不认为没有使用NPOI循环通过细胞是可能的。
也许可以使用Interop to Excel来完成,因为可以在文件中select范围并对其执行一些操作(如在Excel中),但是NPOI不提供这种function。

但是,由于存在FirstRowNumLastRowNum属性,因此不需要遍历表中的所有单元格,并且它们为您提供实际包含数据的行的范围。

所以你的循环可能看起来像(从文件的第一个工作表转换成大写的所有string):

 var hssfwb; using (var file = new FileStream(@"your_file.xls", FileMode.Open, FileAccess.Read)) { hssfwb = new HSSFWorkbook(file); file.Close(); } var sheet = hssfwb.GetSheetAt(0); for (int i = sheet.FirstRowNum; i <= sheet.LastRowNum; i++) { var row = sheet.GetRow(i); if (row != null) { foreach (ICell cell in row.Cells.Where(c => c.CellType == CellType.String)) cell.SetCellValue(cell.StringCellValue.ToUpper()); } }