NPOI读取excel表,如果有公式取出的是公式,想要取数字怎么办?
2024-08-26 14:03:37
public static DataTable Import(string strFileName)
{
DataTable dt = new DataTable(); HSSFWorkbook hssfworkbook;
using (FileStream file = new FileStream(strFileName, FileMode.Open, FileAccess.Read))
{
hssfworkbook = new HSSFWorkbook(file);
}
ISheet sheet = hssfworkbook.GetSheetAt();
System.Collections.IEnumerator rows = sheet.GetRowEnumerator(); IRow headerRow = sheet.GetRow();
int cellCount = headerRow.LastCellNum; for (int j = ; j < cellCount; j++)
{
ICell cell = headerRow.GetCell(j);
dt.Columns.Add(cell.ToString());
} for (int i = (sheet.FirstRowNum + ); i <= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i);
DataRow dataRow = dt.NewRow(); for (int j = row.FirstCellNum; j < cellCount; j++)
{
if (row.GetCell(j) != null)
{
//如果是公式Cell
//则仅读取其Cell单元格的显示值 而不是读取公式
if (row.GetCell(j).CellType == CellType.Formula)
{
row.GetCell(j).SetCellType(CellType.String);
dataRow[j] = row.GetCell(j).StringCellValue;
}
else
{
dataRow[j] = row.GetCell(j).ToString();
}
}
}
dt.Rows.Add(dataRow);
}
return dt;
}
将单元格的类型转换成numberic,
CellType.String ,我在网上找的东西粘贴过来发现不过,找了半天原因是大小写的错误,
这里是个枚举,f12跟过去就可以看见了,改成相应的类型就OK
最新文章
- PHP小总结
- .NET的面向对象
- flask 知识点总结
- Python学习笔记——Day4
- php返回json数据简单实例
- Set Java Proxy for Http/Https
- MongoDB在windows自启动
- Android屏幕适应详解(二)
- Visual Studio 自定义控件不显示在工具箱
- C#——中文转化成拼音
- uva11624 - Fire!
- github上前100的ios项目
- phpstorm9如何配置interpreter
- Exp5 MSF基础应用
- Oracle分析函数——函数列表
- 好玩的原生js的简单拖拽
- qunee 开发清新、高效的拓扑图组件 http://www.qunee.com/
- postgresql-磁盘空间不足问题排查
- file命令与magic file【转】
- 使用jmeter往指定文件中插入一定数量的数据