C# .Net :Excel NPOI导入导出操作教程之将Excel文件读取并写到数据库表,示例分享
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文件读取并写到数据库表,示例分享的更多相关文章
- c# .Net :Excel NPOI导入导出操作教程之List集合的数据写到一个Excel文件并导出
将List集合的数据写到一个Excel文件并导出示例: using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using System;using Sys ...
- c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出
c# .Net :Excel NPOI导入导出操作教程之读取Excel文件信息及输出 using NPOI.HSSF.UserModel;using NPOI.SS.UserModel;using S ...
- c# .Net :Excel NPOI导入导出操作教程之数据库表信息数据导出到一个Excel文件并写到磁盘示例分享
string sql = @"select * from T_Excel"; ----------------DataTable Star---------------- ...
- net core WebApi——使用NPOI导入导出操作
目录 前言 NPOI 测试 小结 @ 前言 时间过得好快,在之前升级到3.0之后,就感觉好久没再动过啥东西了,之前有问到Swagger的中文汉化,虽说我觉得这种操作的意义不是太大,也是多少鼓捣了下,其 ...
- NPOI导入导出Excel
.net mvc利用NPOI导入导出excel 注意:如何导出的提交方式ajax导出是失效的! 解决方案是:js处理l两个表单的提交 代码: 第一步. 在页面里面加入2个隐藏的iframe, 如下 ...
- .Net core NPOI导入导出Excel
最近在想.net core NPOI 导入导出Excel,一开始感觉挺简单的,后来真的遇到很多坑.所以还是写一篇博客让其他人少走一些弯路,也方便忘记了再重温一遍.好了,多的不说,直接开始吧. 在.Ne ...
- NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中
以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Wri ...
- 循序渐进开发WinForm项目(5)--Excel数据的导入导出操作
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- NPOI导入导出Excel数据
代码: using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using System; usi ...
随机推荐
- Highcharts配置
一.基础使用 <script src="http://cdn.hcharts.cn/jquery/jquery-1.8.3.min.js"></script> ...
- Rocksdb Compaction原理
概述 compaction主要包括两类:将内存中imutable 转储到磁盘上sst的过程称之为flush或者minor compaction:磁盘上的sst文件从低层向高层转储的过程称之为compa ...
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 《饥荒游戏》SW BUG 刷猴子 & 刷淘气值 办法
简介 该办法利用刷猴子的方式,通过杀猴子获取淘气值,从而刷出坎普斯,继而刷坎普斯背包 物品准备 灭火器x1 箱子x1 逗猴球x1 猴窝xN 帽贝岩x2 避雷针x1 操作步骤 1.灭火器建造在2个帽贝岩 ...
- Java Web中的中文编码
Java Web开发中经常会遇到中文编码问题,那么为什么需要编码呢?因为人类需要表示的符号太多,无法用1个字节来表示,而计算机中存储信息最小单元为1个字节.所以必须指定char与byte之间的编码规则 ...
- nodejs中异常错误的处理方式
因为nodejs是单线程的,所以一旦发生错误或异常,如果没有及时被处理整个系统就会崩溃.错误异常有两种场景的出现,一种是代码运行中throw new error没有被捕获,另一种是Promise的失败 ...
- css样式之background详解(格子效果)
background用法详解: 1.background-color 属性设置元素的背景颜色 可能的值 color_name 规定颜色值为颜色名称的背景颜色(比如 red) he ...
- [LeetCode] Word Search II 词语搜索之二
Given a 2D board and a list of words from the dictionary, find all words in the board. Each word mus ...
- Kinect for Windows SDK开发入门(十九):Kinect Fusion
Kinect for Windows SDK1.7中引入了Kinect Fusion功能.在1.8的SDK中对该功能进行了改进和强化,Kinect Fusion能够使得我们使用Kinect f ...
- JavaScript-简单的贪吃蛇小游戏
实现逻辑: //获取Html中的格子(行,列) //建立数组存储所有格子(x,y) //建立数组用于存储蛇身(x,y) //生成随机坐标(x,y)的函数 //随机创建蛇身并存储到蛇身数组 //创建食物 ...