C# 如何使用NPOI按地址(A1,A2)获取Excel单元格值
我有一个Excel单元格地址,如A1、A2。如何使用C#中的NPOI框架以编程方式访问此单元格 我发现的一些Java POI示例代码:C# 如何使用NPOI按地址(A1,A2)获取Excel单元格值,c#,npoi,C#,Npoi,我有一个Excel单元格地址,如A1、A2。如何使用C#中的NPOI框架以编程方式访问此单元格 我发现的一些Java POI示例代码: CellReference cr = new CellReference("A1"); row = mySheet.getRow(cr.getRow()); cell = row.getCell(cr.getCol()); 您找到的Java代码将1:1转换为C#: 首先,将单元格描述(A1)转换为CellReference 使用该单元格引用中的行和列,查
CellReference cr = new CellReference("A1");
row = mySheet.getRow(cr.getRow());
cell = row.getCell(cr.getCol());
您找到的Java代码将1:1转换为C#:
- 首先,将单元格描述(A1)转换为
CellReference
- 使用该单元格引用中的
和行
,查找实际单元格列
var workbook = new XSSFWorkbook(stream);
var sheet = workbook.GetSheetAt(0);
var cr = new CellReference("D5");
var row = sheet.GetRow(cr.Row);
var cell = row.GetCell(cr.Col);
Console.Write(cell.StringCellValue);
请注意,引用空单元格将导致异常。Excel不会在内部存储未使用的单元格,(N)POI不会试图向开发人员隐藏这一事实。以下是一些示例代码,可以帮助您获取任何值
var workbook = new XSSFWorkbook(stream);
var sheet = workbook.GetSheetAt(0);
var cr = new CellReference("D5");
var row = sheet.GetRow(cr.Row);
var cell = row.GetCell(cr.Col);
var val = getCellValue(cell);
private object getCellValue(ICell cell)
{
object cValue = string.Empty;
switch (cell.CellType)
{
case (CellType.Unknown | CellType.Formula | CellType.Blank):
cValue = cell.ToString();
break;
case CellType.Numeric:
cValue = cell.NumericCellValue;
break;
case CellType.String:
cValue = cell.StringCellValue;
break;
case CellType.Boolean:
cValue = cell.BooleanCellValue;
break;
case CellType.Error:
cValue = cell.ErrorCellValue;
break;
default:
cValue = string.Empty;
break;
}
return cValue;
}
我等了很久才从高级开发人员那里得到一个最优的解决方案,他们中没有一个试图帮助我。所以我试着自己找到一个解决方案..感谢宝贵的支持社区。CellReference cr=new CellReference(cell);row=cr.row col=cr.col谢谢,这非常有帮助-尽管它对数据类型而不是var更有帮助。不要忘记使用
语句添加所有这些,例如使用NPOI.SS.Util代码>以供参考等。