Excel导入到数据库(二)

2024-06-08 20:08
文章标签 excel 数据库 导入到

本文主要是介绍Excel导入到数据库(二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        之前就写过一个将excel导入数据库的博客,http://blog.csdn.net/u011458469/article/details/41913293。这个是利用的Office的一个接口,直接就导入了。但是这个方法有很大的局限性,要求本地得有Office并且还要求了位数是64还是32位,不同位的Office提供了不同的接口,所以这个方法就对环境有了很大的要求,并且这个方法性能不怎么好,导入个1000条的数据就得停顿个2、3秒的。本文介绍了另外一种方法:利用Aspose.cells来导入。(该控件是商用的)

        首先,就是引用该控件:


然后导入命名空间:using Aspose.Cells;

第一步是将excel导入到DataTable中:

 //读取excel的数据,并放到datatable中。public static System.Data.DataTable ReadExcel(string filePath){Workbook book = new Workbook();book.Open(filePath);Worksheet sheet = book.Worksheets[0];Cells cells = sheet.Cells;return cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true);}
参数是要导入的excel表的路径。

导入到datatable中之后,第二步就是将该datatable添加到数据库的表中(要添加的表是新建的表,并且表的字段也是变量):

public void Import(string dataTableName, string filePath){//获取excel的数据,放到dt中DataTable dt = ReadExcel(filePath);//获取dt的所有字段名,放入strFieldsName中List<string> strFieldsName = new List<string>();foreach (DataColumn dc in dt.Columns){strFieldsName.Add(dc.ColumnName);}//定义list,拼接字符串List<string> list = new List<string>();string fName = null;for (int i = 0; i < dt.Columns.Count; i++){string fieldsName = strFieldsName[i].ToString().Trim();  //字段名list.Add(fieldsName);fName += list[i].ToString().Trim() + " varchar(30),";//获取字段名,并拼接字符串}fName = fName.Substring(0, fName.Length - 1);//去掉循环到最后的逗号","string sqlStr = "create table " + dataTableName + "( " + fName + ")";string strConn = ConfigurationManager.ConnectionStrings["sqlConn"].ConnectionString;//获取连接数据库的字符串//实例化sql连接SqlConnection conn = new SqlConnection(strConn);conn.Open();//实例化sql命令SqlCommand cmd = new SqlCommand(sqlStr, conn);//执行sql命令,创建数据表。cmd.ExecuteNonQuery();//关闭连接conn.Close();//将dt的数据放到新建的数据表中SqlBulkCopy sqlbulkcopy = new SqlBulkCopy(strConn, SqlBulkCopyOptions.UseInternalTransaction);sqlbulkcopy.DestinationTableName = dataTableName;//数据库中的表名sqlbulkcopy.WriteToServer(dt);}
参数是要新建的表名(tableName)和文件路径(filePath)。

这样就可以导入数据库中了。



这篇关于Excel导入到数据库(二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1043185

相关文章

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java easyExcel实现导入多sheet的Excel

《JavaeasyExcel实现导入多sheet的Excel》这篇文章主要为大家详细介绍了如何使用JavaeasyExcel实现导入多sheet的Excel,文中的示例代码讲解详细,感兴趣的小伙伴可... 目录1.官网2.Excel样式3.代码1.官网easyExcel官网2.Excel样式3.代码

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、

MySQL数据库的内嵌函数和联合查询实例代码

《MySQL数据库的内嵌函数和联合查询实例代码》联合查询是一种将多个查询结果组合在一起的方法,通常使用UNION、UNIONALL、INTERSECT和EXCEPT关键字,下面:本文主要介绍MyS... 目录一.数据库的内嵌函数1.1聚合函数COUNT([DISTINCT] expr)SUM([DISTIN

MySQL追踪数据库表更新操作来源的全面指南

《MySQL追踪数据库表更新操作来源的全面指南》本文将以一个具体问题为例,如何监测哪个IP来源对数据库表statistics_test进行了UPDATE操作,文内探讨了多种方法,并提供了详细的代码... 目录引言1. 为什么需要监控数据库更新操作2. 方法1:启用数据库审计日志(1)mysql/mariad

postgresql数据库基本操作及命令详解

《postgresql数据库基本操作及命令详解》本文介绍了PostgreSQL数据库的基础操作,包括连接、创建、查看数据库,表的增删改查、索引管理、备份恢复及退出命令,适用于数据库管理和开发实践,感兴... 目录1. 连接 PostgreSQL 数据库2. 创建数据库3. 查看当前数据库4. 查看所有数据库

从入门到精通MySQL 数据库索引(实战案例)

《从入门到精通MySQL数据库索引(实战案例)》索引是数据库的目录,提升查询速度,主要类型包括BTree、Hash、全文、空间索引,需根据场景选择,建议用于高频查询、关联字段、排序等,避免重复率高或... 目录一、索引是什么?能干嘛?核心作用:二、索引的 4 种主要类型(附通俗例子)1. BTree 索引(

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.