NPOI读取单元格日期问题

最近在使用ASP.Net MVC3来开发一个网站,需要实现数据的Excel导入导出功能。在处理导入时,遇到了一个问题:将所有的单元格都按字符串单元格来处理,运行时对日期类型的就会出错。搜了一下解决办法,最终解决了,将代码贴上:

row = (HSSFRow)rows.Current;

DataRow dataRow = dt.NewRow();

for (int i = 0; i < row.LastCellNum; i++)

{

ICell cell = row.GetCell(i);

if (cell.CellType == CellType.NUMERIC)

{

//NPOI中数字和日期都是NUMERIC类型的,这里对其进行判断是否是日期类型

if (HSSFDateUtil.IsCellDateFormatted(cell))//日期类型

{

dataRow[i] = cell.DateCellValue;

}

else//其他数字类型

{

dataRow[i] = cell.NumericCellValue;

}

}

else if (cell.CellType == CellType.BLANK)//空数据类型

{

dataRow[i] = "";

}

else if (cell.CellType == CellType.FORMULA)//公式类型

{

HSSFFormulaEvaluator eva = new HSSFFormulaEvaluator(workbook);

dataRow[i] = eva.Evaluate(cell).StringValue;

}

else //其他类型都按字符串类型来处理

{

dataRow[i] = cell.StringCellValue;

}

}

dt.Rows.Add(dataRow);

----------------------------------------淡淡的分隔符-----------------------------------------------

关键的处理就是红色部分对单元格的判断了。

原文地址:https://www.cnblogs.com/SethKing/p/8195529.html

时间: 2024-10-17 20:08:42

NPOI读取单元格日期问题的相关文章

NPOI 读取单元格的格式

最近做项目需要导入一部分数据, 导入的数据的中, 有部分的百分比数据使用的是excel 的百分比, 有部分的数据使用的是字符串形式的格式,(数据来源于不同的人统计), 格式略微有点乱, 要求导入系统的时候, 将所有百分比的数据转换成百分制的数据存储起来. 因为之前项目使用的读取excel 的组件式NPOI , 所以我也就直接使用npoi来读, 我用的NPOI是2.0的版本的, 不算太新. 常规读取的时候, 是按照下面的方式读取到ICell的 IWorkbook workbook = null;

NPOI Excel 单元格背景颜色对照表

NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillPattern 为单元格背景色的填充样式. NPOI Excel 单元格背景颜色设置方法以及颜色对照表: 1 2 3 4 5 6 ICellStyle style = workbook.CreateCellStyle(); style.FillForegroundColor = NPOI.HSSF.U

NPOI设置单元格格式

本文转载自:http://blog.csdn.net/xxs77ch/article/details/50245641 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using NPOI.HSSF.UserModel; using NPOI.SS.Formula.Eval; using NPOI.SS.Formu

NPOI 自定义单元格背景颜色-Excel

2016-12-27 10:44 by 杨新华, 5242 阅读, 0 评论, 收藏, 编辑 NPOI针对office2003使用HSSFWorkbook,对于offce2007及以上使用XSSFWorkbook:今天我以HSSFWorkbook自定义颜色为例说明,Office2007的未研究呢 在NPOI中默认的颜色类是HSSFColor,它内置的颜色有几十种供我们选择,如果不够怎么办,不能修改底层的HSSFColor类: 大概解决思路: 1.将颜色的RGB值添加进调色板HSSFPalette

NPOI 获取单元格的值

1.日期格式的坑 var cell = row.GetCell(i);//获取某一个单元格 var value = ""; if (cell != null) { if (cell.CellType == CellType.Numeric)//当单元格格式是数值或者日期的时候,CellType==Numeric { value = cell.ToString();//如果是数值还好,如果是日期类型的话,直接获取的值是不正确的 if (DateUtil.IsCellDateFormatt

c# NPOI通过单元格里的公式,计算数值

业务场景 公司B是母公司A的子公司,每个月都需要将耗材销售情况统计向总公司报账. 其中计算的内容如下: 1.该时间段客户a.b.c ...z的分别购买耗材金额,即该客户端销售额 2.对于a.b.c ...z公司,每销售一个单位数量的耗材都有居间费(抽成) 以上Excel中A-P列是从系统导出来的,其中Q(佣金总额).P(业绩)列是公式拖拽生成的. Q列的公式 H2 * M2(M列如果没有,默认为0) R列的公式 L2 - Q2 以上公式,如果在任何一个Excel中,经过拖拽都很容易实现. 笔者以

NPOI合并单元格后边框显示不正确?

这个方法能解决:SetEnclosedBorderOfRegion() 1 //merged cells on mutiple rows 2 CellRangeAddress region = new CellRangeAddress(2, 4, 0, 0); 3 sheet.AddMergedRegion(region); 4 5 //set enclosed border for the merged region 6 ((HSSFSheet)sheet).SetEnclosedBorder

NPOI生成单元格(列)下拉框

客户提出能否将导入模板中,课程一列添加下拉框方便选择,不用手输入,以减少输入错误的可能性.于是在网上找了点代码,稍加整理后,形成了以下方案,代码部分: 一:生成课程列表,并放置在excel的单独sheet中. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 IList<CourseCodeInfo> list = StudentBus.GetSubjectInterface().GetList(0, "", "Name"); var Co

Kendo UI:Grid中单元格日期格式化

摘自: http://blog.csdn.net/sun_jy2011/article/details/41546337 Kendo UI:Grid中怎么格式化时间类型数据? 解决方案 (1)使用format格式化 { field: "updateTime", title: "更新时间", width: 200, format: "{0: yyyy-MM-dd HH:mm:ss}" } (2)使用template实现 { field: "