使用NPOI导入Excel注意日期格式和数字格式
//使用NPOI导入Excel
public static DataTable importExcelToDataSetUsingNPOI(string FilePath, string fileName)
{
DataSet myDs = new DataSet();
DataTable dt = new DataTable("mytable"); myDs.Tables.Add(dt);
DataRow myRow;
myDs.Clear(); try
{
using (Stream stream = new FileStream(FilePath, FileMode.Open, FileAccess.Read))
{
HSSFWorkbook wk = new HSSFWorkbook(stream); ISheet sheet = wk.GetSheetAt(); //读取当前表数据 只读取第一个sheet int rowsint = sheet.LastRowNum;
for (int y = ; y <= rowsint; y++)
{
//Execel第一行是标题,不是要导入数据库的数据
IRow row = sheet.GetRow(y); //读取当前行数据
if (row != null)
{
int columnsint = row.LastCellNum;
if (y == )//第一行,标题
{
for (int m = ; m < columnsint; m++)
{
dt.Columns.Add("F" + m.ToString(), System.Type.GetType("System.String"));
}
}
else
{
myRow = myDs.Tables["mytable"].NewRow();
for (int j = ; j < columnsint; j++)
{
if (j == )
{ }
if (row.GetCell(j).CellType == CellType.NUMERIC)//数字类型
{
string columnname = "F" + j.ToString();
if (DateUtil.IsValidExcelDate(row.GetCell(j).NumericCellValue) && DateUtil.IsCellDateFormatted(row.GetCell(j)))
{
DateTime D = row.GetCell(j).DateCellValue;
myRow[columnname] = (D.ToString().Length == || D.ToString().Contains("#")) ? " " : D.ToString();
}
else
{
double strValue = row.GetCell(j).NumericCellValue;
myRow[columnname] = (strValue.ToString().Length == || strValue.ToString().Contains("#")) ? " " : strValue.ToString();
}
}
else
{
string strValue = row.GetCell(j).StringCellValue;
string columnname = "F" + j.ToString();
myRow[columnname] = (strValue.Length == || strValue.Contains("#")) ? " " : strValue;
}
}
try
{
myDs.Tables["mytable"].Rows.Add(myRow);
}
catch { }
}
}
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
return myDs.Tables["mytable"];
}
使用NPOI导入Excel注意日期格式和数字格式的更多相关文章
- ASP.NET MVC NPOI导入Excel DataTable批量导入到数据库
使用NPOI导入Excel 首先在MVC项目中导入NPOI 查询NPOI安装,排序依据,选择:最高下载量,选择第一个. 在控制器中创建ExcelController 在Index视图中写入代码: @u ...
- 使用npoi导入Excel - 带合并单元格--附代码
之前我们在使用npoi导入excel表格的时候,往往会遇见那种带有合并单元格的数据在导入的时候出现合并为空的问题, 也就是只有第一条有数据,其余均为空白.在网上翻了半天也没有找到合适的解决方案,最后还 ...
- NPOI 导入Excel和读取Excel
1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.NPOI是POI的C#版本,NPOI的行和列的index都是从0开始 ...
- NPOI导入excel为datatable (xls xlsx xlsm)
使用NPOI导入导出Excel(xls/xlsx)数据到DataTable中 http://www.cnblogs.com/songrun/p/3547738.html NPOI 2.0教程 – 自动 ...
- NPOI导入excel
1.引用NPOI: using NPOI.HSSF.UserModel;using NPOI.HSSF.Util;using NPOI.SS.UserModel; 2.导出excel 1 privat ...
- .Net Core 使用 NPOI 导入Excel
由于之前在网上查阅一些资料发现总是不能编译通过,不能正常使用,现把能正常使用的代码贴出: /// <summary> /// Excel导入帮助类 /// </summary> ...
- NPOI导入Excel日期格式的处理 - 附类型格式匹配表
传统操作Excel方法在部署的时候遇到很多问题,如目标主机需要安装Excel.64位电脑不支持.需要安装相关驱动程序等.所以我们一般会使用开源的NPOI来替代传统的Excel操作方法,NPOI的优点是 ...
- Mysql导入Excel数据 日期问题 (Excel 与 MySQL 时间戳格式和日期 互转)
https://blog.csdn.net/ghw455954461/article/details/7247738 今天项目表中需要导入好几w条数据 ,但日期由两个一个是标准时间一个为时间戳,程序中 ...
- jxl 导入excel以及日期格式处理
先建一个excel文件abc.xls.放到E盘根目录下.形如下: name secondName hot1 leave1 hot2 leave2 然后在数据库里建表. CREATE TABLE `na ...
随机推荐
- C/C++中传值和传地址(引用)
C/C++中参数传递有两种方式,传值或传地址(传引用),通常我们要在被调用函数中改变一个变量的值就需要传地址调用方式,例如: void swap_by_value(int a, int b) { in ...
- django2自动发现项目中的url
根据路飞学城luffycity.com 的crm项目修改的 1 url入口:rbac/urls.py urlpatterns = [ ... # 批量操作权限 re_path(r'^multi/per ...
- 算法笔记_075:蓝桥杯练习 最短路(Java)
目录 1 问题描述 2 解决方案 2.1 floyd算法解决 2.2 spfa算法解决 1 问题描述 问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环).请你计算从 ...
- Android实现换肤功能(二)
前两天写的上章关于换肤的功能获得了很好的反响,今天为大家介绍另一种方式.今天实现的策略也是网友建议的,然后我自己去写了个demo,大家自己评估下相比第一种方式的优势和劣势在哪里. 简单介绍下关于第一种 ...
- mysql课程记录
thread_pool可以使用Percona的版本和Mariadb的版本 都是支持的 主从切换是根据HA的方式,TDDL(Taobao Distribute Data Layer) 的方式的话,推 ...
- 修改easyui panel 默认样式
有这么个需求需要修改easyui panel头部中的背景色.于是根据panel中的最终被浏览器解析出来的类名,直接修改这个css样式,设置backgroud-color这个属性,发现不管用. 于是,就 ...
- easyui 动态加载语言包
解决办法是:把语言包中的语言类型写到cookie,动态修改cookie中的语言名称,修改完后重新渲染一下页面. 在页面加载完成后,先判断cookie存不存在,如果不存在就写入默认语言,存在就给easy ...
- BootStrap modal() 如何根据返回的HTML宽度自动调整宽度?
首先声明,如果真的这么做了也就失去了 bootstrap 多分辨率适配的好处.bootstrap 的 modal 窗口能够自动在不同分辨率下用不同的宽度,这就是它的特色呢. 以默认大小的 modal ...
- Atitit.数据操作dsl 的设计 ---linq 方案
Atitit.数据操作dsl 的设计 ---linq 方案 1.1. sql与api方式1 1.2. Linq方案与stream方案的选择,1 1.3. 前缀表达式 vs 中缀表达式1 1.4. 要不 ...
- Struts2请求流程图
ServletContext中的内容: <s:property value="#attr['countries']['cn']"/> <br> Sessio ...