1. public DataTable ExcelToDataTable(Stream stream, string fileName)
  2. {
  3. DataTable data = new DataTable();
  4. try
  5. {
  6. IWorkbook workbook = null;
  7. if (fileName.IndexOf(".xlsx") > )
  8. workbook = new XSSFWorkbook(stream);
  9. else if (fileName.IndexOf(".xls") > )
  10. workbook = new HSSFWorkbook(stream);
  11. //sheet = workbook.GetSheet(sheetName);
  12. ISheet sheet = workbook.GetSheetAt();
  13. if (sheet != null)
  14. {
  15. IRow firstRow = sheet.GetRow();
  16. int cellCount = firstRow.LastCellNum;
  17.  
  18. for (int i = firstRow.FirstCellNum; i < cellCount; ++i)
  19. {
  20. ICell cell = firstRow.GetCell(i);
  21. if (cell != null)
  22. {
  23. string cellValue = cell.StringCellValue;
  24. if (cellValue != null)
  25. {
  26. DataColumn column = new DataColumn(cellValue);
  27. data.Columns.Add(column);
  28. }
  29. }
  30. }
  31.  
  32. int startRow = sheet.FirstRowNum + ;
  33. int rowCount = sheet.LastRowNum;
  34. for (int i = startRow; i <= rowCount; ++i)
  35. {
  36. IRow row = sheet.GetRow(i);
  37. if (row == null) continue;
  38.  
  39. DataRow dataRow = data.NewRow();
  40. for (int j = row.FirstCellNum; j < cellCount; ++j)
  41. {
  42. if (row.GetCell(j) != null)
  43. dataRow[j] = row.GetCell(j).ToString();
  44. }
  45. data.Rows.Add(dataRow);
  46. }
  47. }
  48. return data;
  49. }
  50. catch
  51. {
  52. return null;
  53. }
  54. }
  1. using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection("Data source=.; Database=Test; UID=sa; password=123;"))
  2. {
  3. conn.Open();
  4. using (System.Data.SqlClient.SqlBulkCopy bulk = new System.Data.SqlClient.SqlBulkCopy(conn))
  5. {
  6. bulk.DestinationTableName = "Import";
  7. bulk.BatchSize = dt.Rows.Count;
  8. bulk.ColumnMappings.Add("ID", "ID");
  9. bulk.ColumnMappings.Add("Sex", "Sex");
  10. bulk.ColumnMappings.Add("Name", "Name");
  11. bulk.ColumnMappings.Add("Age", "Age");
  12. bulk.WriteToServer(dt);
  13. }
  14. }

表格数据(导入到Test数据库,Import表):

NPOI导入excel文件为DataTable,使用SqlBulkCopy添加到数据库表的更多相关文章

  1. NPOI导入Excel日期格式的处理 - 附类型格式匹配表

    传统操作Excel方法在部署的时候遇到很多问题,如目标主机需要安装Excel.64位电脑不支持.需要安装相关驱动程序等.所以我们一般会使用开源的NPOI来替代传统的Excel操作方法,NPOI的优点是 ...

  2. 使用NPOI导入Excel注意日期格式和数字格式

    //使用NPOI导入Excel public static DataTable importExcelToDataSetUsingNPOI(string FilePath, string fileNa ...

  3. ASP.NET MVC NPOI导入Excel DataTable批量导入到数据库

    使用NPOI导入Excel 首先在MVC项目中导入NPOI 查询NPOI安装,排序依据,选择:最高下载量,选择第一个. 在控制器中创建ExcelController 在Index视图中写入代码: @u ...

  4. NPOI对excel文件的导入导出

    现理解:将一个Excel文件(工作簿-IWorkBook)看做是一个你要操作的对象,每个工作簿包含多个工作表(ISheet)对象,每个工作表中又包含多个行对象(IRow),每行又包含多个单元格(ICe ...

  5. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  6. C#利用NPOI操作Excel文件

    NPOI作为开源免费的组件,功能强大,可用来读写Excel(兼容xls和xlsx两种版本).Word.PPT文件.可是要让我们记住所有的操作,这便有点困难了,至此,总结一些在开发中常用的针对Excel ...

  7. 使用npoi导入Excel - 带合并单元格--附代码

    之前我们在使用npoi导入excel表格的时候,往往会遇见那种带有合并单元格的数据在导入的时候出现合并为空的问题, 也就是只有第一条有数据,其余均为空白.在网上翻了半天也没有找到合适的解决方案,最后还 ...

  8. C#-导入Excel 内容到 DataTable中

    C#-导入Excel 内容到 DataTable中 直接传入文件路径,支持所有Excel格式. 缺点:如果数据量庞大会很占内存. public static DataTable ImportExcel ...

  9. C# Aspose.Cells方式导入Excel文件

    读取Excel 类 我返回的是DataTable 类型 也可以返回DataSet类型 public class XlsFileHelper { public DataTable ImportExcel ...

随机推荐

  1. 怎么查 ODBC Driver for SQL Server

    1)进入服务器,找到SQL Server 2016 Configuration... ,点进去就好了 2)

  2. STM32 定时器级联

    根据参考手册给出的主/ 从定时器的例子 其实就是主定时器产生一个触发信号,让从定时器去接收这个触发信号,通过这个触发信号来让从定时器工作. 下面我们来看看我设置的从定时器 只需要配置 TIMx-> ...

  3. navicat远程连接阿里云ECS上的MYSQL报Lost connection to MySQL server at 'reading initial communication packet'

    问题现象 MySQL 远程连接报错:Lost connection to MySQL server at 'reading initial communication packet' 解决方案 1.检 ...

  4. 了解一下 Linux 上用于的 SSH 图形界面工具

    如果你碰巧喜欢好的图形界面工具,你肯定很乐于了解一些 Linux 上优秀的 SSH 图形界面工具.让我们来看看这三个工具,看看它们中的一个(或多个)是否完全符合你的需求. 在你担任 Linux 管理员 ...

  5. Web前端开发(基础学习+坑)

    0.基本说明 0.内容为课堂所学基本知识,加自己踩过的坑 1.web基本框架:html+css+JavaScript,html为网页骨架,css为网页美化,JavaScript负责页面动态交互,脚本等 ...

  6. easyui form提交和formdata提交记录

    1  easyui form提交 $('form').form('submit',{ url:''; onSubmit:''; success:function(data){ //这种方法获取到的da ...

  7. jquery easyui datagrid 空白条处理 自适应宽高 格式化函数formmater 初始化时会报错 cannot read property 'width'||'length' of null|undefined

    1---表格定义好之后右侧可能会有一个空白条 这个空白条是留给滚动条的,当表格中的一页的数据在页面中不能全显示时会自动出现滚动条,网上有很多事要改源码才可以修改这个,但是当项目中多处用到时,有的需要滚 ...

  8. mysql库、表、索引

    创建和删除数据库,同一个数据库下的不同表可以采用不同的引擎 mysql> create database oldboy default character set utf8 collate ut ...

  9. win7使用问题解决

    1. VM和主机互相PING不通 问题:桥接模式,VM可以ping 通外网,可以ping 通局域网其它机子,就是ping 不通本地主机 解决:将 vm网卡和本地网连接网卡都共享出来

  10. Python之字符编码(一)

    一.了解字符编码的知识储备? 1.计算机基础知识? 计算机中所有的软件文件(包括:操作系统)都存储在硬盘,启动计算机,计算机需要把系统文件都去到内存中. 2.文本编辑器存取文件的原理(nodepad+ ...