用第三方组件: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数据库的更多相关文章

  1. C# WPF 进度条,根据读取数据显示进度条进度,根据Excel文件读取数据,进度条样式

    后台代码: //导入 private void Border_MouseLeftButtonUp_2(object sender, MouseButtonEventArgs e) { var path ...

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

    using (FileStream fileReader = File.OpenRead(@"C:\Users\Administrator\Desktop\112.xls"))   ...

  3. SQL语句:把Excel文件中数据导入SQL数据库中的方法

    1.从Excel文件中,导入数据到SQL数据库情况一.如果接受数据导入的表不存在 select * into jd$ from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ...

  4. Excel大批量导入数据到SQLServer数据库-万条只用1秒

    private string ExcelToStudent() { /*---*/ var preStr = DateTime.Now.ToString("yyyyMMddHHmmssfff ...

  5. 从Excel中读取数据(python-xlrd)

    从Excel中读取数据(python-xlrd) 1.导入模块 import xlrd 2.打开Excel文件读取数据 data = xlrd.open_workbook('excelFile.xls ...

  6. 在实现从excel中读取数据作为接口参数遇到的问题

    这个算我自己第一次使用python语言实现 一个功能 一.首先我们先要代码实现如何从excel上读取数据python实现还是比较简单的 1.我使用的是xlrd模块,我们先要安装这个包,这样我们才可以使 ...

  7. postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库

    最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...

  8. jsp+servlet上传excel并将数据导入到数据库表的实现方法

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  9. revit导出模型数据到sqlserver数据库

    revit软件可以导出模型数据到sqlserver数据库,有时候,为了对模型做数据分析,需要导出模型的数据,下面总结一下导出过程: 首先在sqlserver中建立一个数据库,如:revit_wujin ...

随机推荐

  1. linux操作Oracle导入导出dmp数据命令

    --清空该表数据 :非索引清空TRUNCATE TABLE  GE_INTERFACE_MESSAGE; --数据库导出 指定导出某个用户的所有数据 包括表 索引 序列 存储过程 函数 等exp CX ...

  2. SqlServer SSAS IIS 部署

    参考MSDN官网:http://technet.microsoft.com/zh-cn/library/gg492140.aspx 注意事项: 网络上有文章说,最后验证是否成功 是在浏览器中输入url ...

  3. Implement the hash table using array / binary search tree

    今天在复习Arrays and String 时看到一个很有趣的问题.希望跟大家分享一下. Implement the hash table using array / binary search t ...

  4. [LeetCode] Minimum Size Subarray Sum 解题思路

    Given an array of n positive integers and a positive integer s, find the minimal length of a subarra ...

  5. linux查看服务器型号

    dmidecode | grep "Product";  

  6. eclipse设置项目发布到tomcat webaap下

    之前用myeclipse,自动deploy到web app下.目前的项目换了eclipse,项目被发布到本地,通过一个链接到tomcat中,很不习惯. 设置的地方很隐晦,在tomcat中,而不是在pr ...

  7. 利用setTimeOut 和clearTimeOut 方法控制写一个 滑动导航显示不同信息的效果

    效果如图鼠标滑动导航  下边显示不同效果 html代码和css格式代码 <body><div id="tab" class="tab"> ...

  8. Python抓取淘宝IP地址数据

    def fetch(ip): url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip result = [] try: response ...

  9. Scanner类的.next()和.hashNext()方法

    使用Scanner类可以很方便地便获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器,它可以从文件.输入流 .字符串中解析出基本类型值和字符串值.Scanner类提供了多个构造器,不同 ...

  10. ASP.NET- web.config配置用户出错页

    很简单,刚好用到,收藏 RemoteOnly是自定义用户错误,改成On,将所有错误都不让用户看见 每当用户访问错误页面时,会出现不友好的404错误,所以为了防止这种不友好,我们在web.config中 ...