using (FileStream fileReader = File.OpenRead(@"C:\Users\Administrator\Desktop\112.xls"))
        {
            //创建工作簿对象接收文件流(Excel信息)
            IWorkbook workbook = new HSSFWorkbook(fileReader);
            //工作簿共有几个表
            //int count = workbook.NumberOfSheets;
            //创建工作表读取工作簿表信息
            //ISheet sheet= workbook.GetSheet("表名称");
            ISheet sheet = workbook.GetSheetAt(0);
            string sql = @" insert into T_ExcelIn(Name,Remarks) values (@Name,@Remarks)";
            int ii = 0;
            //r = 1,剔除表头一行
            for (int r = 1; r <= sheet.LastRowNum; r++)
            {
                //定义参数数组para
                SqlParameter[] para = new SqlParameter[] {
                    new SqlParameter("Name",SqlDbType.NVarChar,50),
                    new SqlParameter("Remarks",SqlDbType.NVarChar,50)
                };
                //创建一行获取sheet行数据
                IRow row = sheet.GetRow(r);
                List<ICell> listcell = new List<ICell>();
                //int c = 1 即不读取自动编号的Id列
                for (int c = 1; c < row.LastCellNum; c++)
                {
                    //将每行每个单元格的值添加带listcell集合中
                    listcell.Add(row.GetCell(c));
                }
                //循环赋值给para
                for (int i = 0; i < listcell.Count; i++)
                {
                    para[i].Value = listcell[i].ToString();
                }
                //执行添加Sql语句
                ii += SqlHelper.ExecuteNonQuery(sql, para);
               
            }
            if (ii > 0)
            {
                Response.Write("<script>alert('已将Excel数据插入到数据库表')</script>");
            }
            else
            {
                Response.Write("<script>alert('Excel数据插入到数据库表失败!')</script>");
            }

        }

————————————参数传递不经过List<>集合————————————

using (FileStream fileReader = File.OpenRead(@"C:\Users\Administrator\Desktop\112.xls"))
        {
            //创建工作簿对象接收文件流(Excel信息)
            IWorkbook workbook = new HSSFWorkbook(fileReader);
            //工作簿共有几个表
            //int count = workbook.NumberOfSheets;
            //创建工作表读取工作簿表信息
            //ISheet sheet= workbook.GetSheet("表名称");
            ISheet sheet = workbook.GetSheetAt(0);
            string sql = @" insert into T_ExcelIn(Name,Remarks) values (@Name,@Remarks)";
            int ii = 0;
            //r = 1,剔除表头一行
            for (int r = 1; r <= sheet.LastRowNum; r++)
            {
                //定义参数数组para
                SqlParameter[] para = new SqlParameter[] {
                    new SqlParameter("Name",SqlDbType.NVarChar,50),
                    new SqlParameter("Remarks",SqlDbType.NVarChar,50)
                };
                //创建一行获取sheet行数据
                IRow row = sheet.GetRow(r);
                //List<ICell> listcell = new List<ICell>();
                //int c = 1 即不读取自动编号的Id列
                for (int c = 1; c < row.LastCellNum; c++)
                {
                    //将每行每个单元格的值添加带listcell集合中
                    //listcell.Add(row.GetCell(c));
                    //将每行的每个单元格的数据添加到para中 c-1即从0 开始记录参数
                    para[c-1].Value = row.GetCell(c).ToString();
                }
                //循环赋值给para
                //for (int i = 0; i < listcell.Count; i++)
                //{
                //    para[i].Value = listcell[i].ToString();
                //}
                //执行添加Sql语句
                ii = SqlHelper.ExecuteNonQuery(sql, para);
            }
            if (ii > 0)
            {
                Response.Write("<script>alert('已将Excel数据插入到数据库表')</script>");
            }
            else
            {
                Response.Write("<script>alert('Excel数据插入到数据库表失败!')</script>");
            }

        }

C# .Net :Excel NPOI导入导出操作教程之将Excel文件读取并写到数据库表,示例分享的更多相关文章

  1. c# .Net :Excel NPOI导入导出操作教程之List集合的数据写到一个Excel文件并导出

    将List集合的数据写到一个Excel文件并导出示例: using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using Sys ...

  2. c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出

    c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...

  3. c# .Net :Excel NPOI导入导出操作教程之数据库表信息数据导出到一个Excel文件并写到磁盘示例分享

      string sql = @"select * from T_Excel"; ----------------DataTable Star----------------    ...

  4. net core WebApi——使用NPOI导入导出操作

    目录 前言 NPOI 测试 小结 @ 前言 时间过得好快,在之前升级到3.0之后,就感觉好久没再动过啥东西了,之前有问到Swagger的中文汉化,虽说我觉得这种操作的意义不是太大,也是多少鼓捣了下,其 ...

  5. NPOI导入导出Excel

    .net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交  代码:  第一步. 在页面里面加入2个隐藏的iframe, 如下 ...

  6. .Net core NPOI导入导出Excel

    最近在想.net core NPOI 导入导出Excel,一开始感觉挺简单的,后来真的遇到很多坑.所以还是写一篇博客让其他人少走一些弯路,也方便忘记了再重温一遍.好了,多的不说,直接开始吧. 在.Ne ...

  7. NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

    以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...

  8. 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  9. NPOI导入导出Excel数据

    代码: using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; usi ...

随机推荐

  1. 数据库管理工具GUI - PremiumSoft Navicat Premium Enterprise 11.2.15 x86/x64 KEY

    转载自: 数据库管理工具GUI - PremiumSoft Navicat Premium Enterprise 11.2.15 x86/x64 KEY Navicat Premium(数据库管理工具 ...

  2. order by 与 group by 区别

    order by 排序查询.asc升序.desc降序 示例: select * from 学生表 order by 年龄 ---查询学生表信息.按年龄的升序(默认.可缺省.从低到高)排列显示 也可以多 ...

  3. ZooKeeper:Java客户端网络处理

    了解ZooKeeper客户端的实现,对于使用ZooKeeper的客户端非常重要. 通过对客户端源码的阅读,了解了如下信息: 创建ZooKeeper对象时,应会创建一个ClientCnxn(代表了客户端 ...

  4. 织梦DedeCMS模板防盗的四种方法

    织梦(DedeCMS)模板也是一种财富,不想自己辛辛苦苦做的模板被盗用,在互联网上出现一些和自己一模一样的网站,就需要做好模板防盗.本文是No牛收集整理自网络,不过网上的版本都没有提供 Nginx 3 ...

  5. sys.dm_os_waiting_tasks 引发的疑问(中)

    上一篇我们说了一下sys.dm_exec_requests 和 sys.dm_os_waiting_tasks 在获取并行等待的时候得不同结果,这一篇我们谈论下我的第二个疑问:为什么一个并行计划(4线 ...

  6. 15天玩转redis —— 第九篇 发布/订阅模式

    本系列已经过半了,这一篇我们来看看redis好玩的发布订阅模式,其实在很多的MQ产品中都存在这样的一个模式,我们常听到的一个例子 就是邮件订阅的场景,什么意思呢,也就是说100个人订阅了你的博客,如果 ...

  7. MMORPG大型游戏设计与开发(服务器 AI 事件)

    AI中的事件与场景中的事件大致相同,都是由特定的条件触发的.只不过AI的事件与其他事件不同的是,对于AI的事件往往是根据不同的AI类型,和动态的触发条件下才产生的.其实不管AI多么智能,它对应的触发条 ...

  8. Linux下的C Socket编程 -- 简介与client端的处理

    Linux下的C Socket编程(一) 介绍 Socket是进程间通信的方式之一,是进程间的通信.这里说的进程并不一定是在同一台机器上也有可能是通过网络连接的不同机器上.只要他们之间建立起了sock ...

  9. Subsets II

    Given a collection of integers that might contain duplicates, nums, return all possible subsets. Not ...

  10. [LeetCode] Jump Game II 跳跃游戏之二

    Given an array of non-negative integers, you are initially positioned at the first index of the arra ...