C#实现从EXCEL文件读取数据到SqlServer数据库
用第三方组件:NPOI组件实现
先去官网:http://npoi.codeplex.com/下载需要引入dll(可以选择.net2.0或者.net4.0的dll),然后在网站中添加引用。使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。
先创建一个实体类:
[Table("Customer") ]
public class Customer
{
[Key]
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public int Gender { get; set; }
}
新建一个实体类Customer
创建一个类去实现读取Excel文件的数据到List<Customer>。
public class ImportExcel
{
public IList<Customer> ImportExeclToCustomer(string filePath)
{
var customerList = new List<Customer>();
Customer customer;
if(string.IsNullOrEmpty(filePath))
{
return null;
} FileStream fileStream = new FileStream(filePath, FileMode.Open, FileAccess.Read);
XSSFWorkbook workBook = new XSSFWorkbook(fileStream); int sheetCount = workBook.Count;
if(sheetCount >)
{
var sheet = workBook.GetSheetAt(); //从第二行开始导入,第一行是列名
for(int i=; i<= sheet.LastRowNum; i++)
{
IRow row = sheet.GetRow(i); //获得该行每一列的值
string tmpFirstName = GetCellValueStringFromISheet(row,);
string tmpLastName = GetCellValueStringFromISheet(row,);
string tmpAge = GetCellValueStringFromISheet(row,);
string tmpGender = GetCellValueStringFromISheet(row,); customer = new Customer()
{
FirstName = tmpFirstName,
LastName = tmpLastName,
Age = Convert.ToInt32(tmpAge),
Gender = Convert.ToInt32(tmpGender)
}; customerList.Add(customer);
}
} return customerList;
} private string GetCellValueStringFromISheet(IRow row, int colIndex)
{
if (row != null)
{
ICell cell = row.GetCell(colIndex);
if (cell != null)
{
if (cell.CellType == CellType.String)
{
return cell.StringCellValue.Trim();
}
if (cell.CellType == CellType.Numeric)
{
return cell.NumericCellValue.ToString().Trim();
}
return cell.StringCellValue.Trim();
}
}
return string.Empty;
}
}
实现读取EXCEL中的数据到List中
在Main函数中方法,实现批量插入数据到SQL Server数据库表中
class Program
{
static void Main(string[] args)
{
string filePath = @"E:\Customer_Test.xlsx"; ImportExcel importExcel = new ImportExcel();
var customerList = importExcel.ImportExeclToCustomer(filePath); #region 添加数据到数据库
using (CodeFirstDBContext context = new CodeFirstDBContext())
{
//EF大数据批量处理
context.BulkInsert(customerList);
context.SaveChanges(); };
#endregion Console.ReadKey();
}
}
Main函数中实现插入数据到数据库中
代码中应用到了EF创建实体,批量插入数据的方法,后续文章中会详细列出
C#实现从EXCEL文件读取数据到SqlServer数据库的更多相关文章
- C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式
后台代码: //导入 private void Border_MouseLeftButtonUp_2(object sender, MouseButtonEventArgs e) { var path ...
- C# .Net :Excel NPOI导入导出操作教程之将Excel文件读取并写到数据库表,示例分享
using (FileStream fileReader = File.OpenRead(@"C:\Users\Administrator\Desktop\112.xls")) ...
- SQL语句:把Excel文件中数据导入SQL数据库中的方法
1.从Excel文件中,导入数据到SQL数据库情况一.如果接受数据导入的表不存在 select * into jd$ from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ...
- Excel大批量导入数据到SQLServer数据库-万条只用1秒
private string ExcelToStudent() { /*---*/ var preStr = DateTime.Now.ToString("yyyyMMddHHmmssfff ...
- 从Excel中读取数据(python-xlrd)
从Excel中读取数据(python-xlrd) 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls ...
- 在实现从excel中读取数据作为接口参数遇到的问题
这个算我自己第一次使用python语言实现 一个功能 一.首先我们先要代码实现如何从excel上读取数据python实现还是比较简单的 1.我使用的是xlrd模块,我们先要安装这个包,这样我们才可以使 ...
- postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库
最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...
- jsp+servlet上传excel并将数据导入到数据库表的实现方法
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...
- revit导出模型数据到sqlserver数据库
revit软件可以导出模型数据到sqlserver数据库,有时候,为了对模型做数据分析,需要导出模型的数据,下面总结一下导出过程: 首先在sqlserver中建立一个数据库,如:revit_wujin ...
随机推荐
- VS2010中 为图片添加背景图片
很简单的东西,嘿嘿 void CTestDlg::OnPaint() { if (IsIconic()) { CPaintDC dc(this); // 用于绘制的设备上下文 SendMessage( ...
- Beta Round #9 (酱油杯noi考后欢乐赛)乌鸦喝水
题目:http://www.contesthunter.org/contest/Beta%20Round%20%EF%BC%839%20%28%E9%85%B1%E6%B2%B9%E6%9D%AFno ...
- Hadoop RPC简单实例
1.导入Hadoop-Common-2.6.0.jar导入工程,里面的IPC实现RPC需要的文件. 2.服务器端 (1)服务接口 package com.neu.rpc.server; /** * ...
- 1002: Prime Path
题目链接:http://172.16.200.33/JudgeOnline/problem.php?id=1002 题意:给你两个四位数的素数,求最少经过多少步的变化能够从一个素数变到另一个素数.在变 ...
- Jquery Datatables 动态列名
Datatables中文网:http://dt.thxopen.com/index.html 尝试: <table id="sp_table" class="dis ...
- Bzoj 1901: Zju2112 Dynamic Rankings 主席树,可持久,树状数组,离散化
1901: Zju2112 Dynamic Rankings Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 6321 Solved: 2628[Su ...
- 4 weekend110的YARN的通用性意义 + yarn的job提交流程
Mr程序写完之后,提交给yarn,yarn会产生一个MRAppMaster,想说的是,yarn变得很 通用,yarn集群上,不光可以跑mr程序,还可以跑各种运算模型. 海量批处理,mapreduce ...
- 1 weekend110的hdfs源码跟踪之打开输入流 + hdfs源码跟踪之打开输入流总结
3种形式的元数据,fsimage是在磁盘上,meta.data是在内存上, 我们继续,前面呢,断点是打在这一行代码处, FileSystem fs = FileSystem.get(conf); we ...
- Hyperic Agent 安装配置报 - No token file found, waiting for Agent to initialize
本人经过跟VMWare 支持的多方努力,问题终于得到解决,方案如下: * Stop the agent Windows service. * Make sure all the agent proce ...
- office文件在线预览,模仿网易邮箱在线预览的
最近研究了半天,代码是倾情奉送啊,C#,asp.net的 这个原理是office文件转换为PDF文件,然后再转换成SWF文件,FlexPaper+swfTools. 有个问题,需要在web.confi ...