使用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 ...
随机推荐
- Discuz常见小问题2-如何在新建的页面上只显示一部分板块
切换到论坛-版块管理,记住要只显示的板块的gid(比如我的是36) 为某个主导航设置一个单独的php页面(名字自己取) 如果这个页面内容跟首页forum.php完全一样,只是第三行增加了一句话 ...
- JAVA 画图机制
java学习脚印:深入java绘图机制 写在前面 封装性越好的类在使用时,只要清楚接口即可,而不应该让程序员了解其内部结构; 对于平常的绘图来讲,java绘图机制无需了解太多,但是朦胧容易产生错误,绘 ...
- Unity3D优化之合并网格
原文地址点击这里
- webSQL 实现即时通讯
websql存储方式一共有以下几个方法 openDatabase:这个方法使用现有的数据库或新建数据库来创建数据库对象. transaction:这个方法允许我们执行事务处理; executeSql: ...
- Java基础——线程总结
Java基础--线程总结 一.线程是什么? 线程:一个程序里不同的运行路径. 二.怎样创建线程? 两种方法创建线程: 第一种 (1)定义详细功能类实现Runnable接口,能够多次调用而实现数据共享 ...
- 使用PostSharp在.NET平台上实现AOP
摘自:http://www.cnblogs.com/leoo2sk/archive/2010/11/30/aop-postsharp.html 本文首先介绍AOP(面向方面编程)的相关概念及理论,然后 ...
- C# EF更新当前实体报错 ObjectManager无法管理具有相同键值的多个对象
原因: ObjectManager已经在跟踪此对象 更新实体前判断 if (db.Entry<T>(t).State != EntityState.Modified) db.Entry&l ...
- Oracle Report(Report 6i/RDF)使用全局变量fnd_global, fnd_frofile
注:本文为原创,作为学习交流使用,转载请标明作者及出处,作者保留追究法律责任的权力. Lumen Su lzsu1989#gmail.com (#=@) www.cnblogs.com/lzsu198 ...
- .NET面试题(一)
1.请编程遍历页面上所有TextBox控件并给它赋值为string.Empty? foreach (System.Windows.Forms.Control control in this.Contr ...
- 英文版windows乱码问题(win7/8/10)