将Excle数据导入到数据库

假如Excel中的数据如下:

  数据库建表如下:

  其中Id为自增字段:

代码:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Web;
  5 using System.Web.UI;
  6 using System.Web.UI.WebControls;
  7 using System.Data;
  8 using System.Data.OleDb;
  9 using System.Configuration;
 10 using System.Data.SqlClient;
 11
 12 namespace InExcelOutExcel
 13 {
 14     public partial class ExcelToDB : System.Web.UI.Page
 15     {
 16         protected void Page_Load(object sender, EventArgs e)
 17         {
 18             FileSvr fileSvr = new FileSvr();
 19             System.Data.DataTable dt = fileSvr.GetExcelDatatable("C:\\Users\\NewSpring\\Desktop\\Demo\\InExcelOutExcel\\InExcelOutExcel\\excel\\ExcelToDB.xlsx", "mapTable");
 20             fileSvr.InsetData(dt);
 21         }
 22     }
 23     class FileSvr
 24     {
 25         /// <summary>
 26         /// Excel数据导入Datable
 27         /// </summary>
 28         /// <param name="fileUrl"></param>
 29         /// <param name="table"></param>
 30         /// <returns></returns>
 31         public System.Data.DataTable GetExcelDatatable(string fileUrl, string table)
 32         {
 33             //office2007之前 仅支持.xls
 34             //const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=‘Excel 8.0;IMEX=1‘;";
 35             //支持.xls和.xlsx,即包括office2010等版本的   HDR=Yes代表第一行是标题,不是数据;
 36             const string cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties=‘Excel 12.0; HDR=Yes; IMEX=1‘";
 37
 38             System.Data.DataTable dt = null;
 39             //建立连接
 40             OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileUrl));
 41             try
 42             {
 43                 //打开连接
 44                 if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
 45                 {
 46                     conn.Open();
 47                 }
 48
 49
 50                 System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
 51
 52                 //获取Excel的第一个Sheet名称
 53                 string sheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();
 54
 55                 //查询sheet中的数据
 56                 string strSql = "select * from [" + sheetName + "]";
 57                 OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
 58                 DataSet ds = new DataSet();
 59                 da.Fill(ds, table);
 60                 dt = ds.Tables[0];
 61
 62                 return dt;
 63             }
 64             catch (Exception exc)
 65             {
 66                 throw exc;
 67             }
 68             finally
 69             {
 70                 conn.Close();
 71                 conn.Dispose();
 72             }
 73
 74         }
 75
 76         /// <summary>
 77         /// 从System.Data.DataTable导入数据到数据库
 78         /// </summary>
 79         /// <param name="dt"></param>
 80         /// <returns></returns>
 81         public int InsetData(System.Data.DataTable dt)
 82         {
 83             int i = 0;
 84             string lng = "";
 85             string lat = "";
 86             string offsetLNG = "";
 87             string offsetLAT = "";
 88
 89             foreach (DataRow dr in dt.Rows)
 90             {
 91                 lng = dr["LNG"].ToString().Trim();
 92                 lat = dr["LAT"].ToString().Trim();
 93                 offsetLNG = dr["OFFSET_LNG"].ToString().Trim();
 94                 offsetLAT = dr["OFFSET_LAT"].ToString().Trim();
 95
 96                 //sw = string.IsNullOrEmpty(sw) ? "null" : sw;
 97                 //kr = string.IsNullOrEmpty(kr) ? "null" : kr;
 98
 99                 string strSql = string.Format("Insert into DBToExcel (LNG,LAT,OFFSET_LNG,OFFSET_LAT) Values (‘{0}‘,‘{1}‘,{2},{3})", lng, lat, offsetLNG, offsetLAT);
100
101                 string strConnection = ConfigurationManager.ConnectionStrings["ConnectionStr"].ToString();
102                 SqlConnection sqlConnection = new SqlConnection(strConnection);
103                 try
104                 {
105                     // SqlConnection sqlConnection = new SqlConnection(strConnection);
106                     sqlConnection.Open();
107                     SqlCommand sqlCmd = new SqlCommand();
108                     sqlCmd.CommandText = strSql;
109                     sqlCmd.Connection = sqlConnection;
110                     SqlDataReader sqlDataReader = sqlCmd.ExecuteReader();
111                     i++;
112                     sqlDataReader.Close();
113                 }
114                 catch (Exception ex)
115                 {
116                     throw ex;
117                 }
118                 finally
119                 {
120                     sqlConnection.Close();
121
122                 }
123                 //if (opdb.ExcSQL(strSql))
124                 //    i++;
125             }
126             return i;
127         }
128     }
129 }

运行结果:

时间: 2024-08-07 12:30:28

将Excle数据导入到数据库的相关文章

excel数据导入导出数据库

第一种方法: 先把Excel另存为.csv格式文件,如test.csv,再编写一个insert.ctl 用sqlldr进行导入! insert.ctl内容如下: load data          --1.控制文件标识 infile ‘my.csv‘          --2.要输入的数据文件名为my.csv append into table "tbl_test"   --3.向表table_name中追加记录 fields terminated by ‘,‘          

将csv和txt 数据导入到数据库中

将文本数据导入到数据库中,最简单的选择是:Excel使用OpenSet,csv和txt 使用bulk insert来实现 1,使用OpenRowSet将Excel导入到数据库中 参考<OpenRowSet 用法> 2,使用bulk insert 将txt数据导入到数据库中,文本数据使用Tab分割Column,使用换行符分割row. --create staging table create table dbo.txt_staging ( col1 nvarchar(255), col2 nva

利用TOAD实现把EXCEL数据导入oracle数据库

利用TOAD实现把EXCEL数据导入oracle数据库 工具:   Toad11.7z(百度搜索,直接下载) 1.将Excel文件中某些字段导入到Oracle数据库的对应表 连接想要导入的数据库 ,然后Database->Import->Table Data打开了导入窗口,如下图   选择一个数据库表,点击Show Data按钮,可以显示表中的内容 其中schema 就是这张表的所属用户 Object type 就是 table Object name 就是表的名称 Commit mode 

将Excel数据导入mysql数据库的几种方法

将Excel数据导入mysql数据库的几种方法 “我的面试感悟”有奖征文大赛结果揭晓! 前几天需要将Excel表格中的数据导入到mysql数据库中,在网上查了半天,研究了半天,总结出以下几种方法,下面和大家分享一下: 一.用java来将Excel表格中的数据转到mysql中 这是我们用的第一种方法,就是在java找你感谢个类,然后这个类会将Excel表格中的数据存储到内存里,然后再从内存中读出来插入到数据库中,但是要 注意了,这里是存储到String[ ]数组里面,所以取出来的数据也是Strin

怎样把 excel 的数据导入到数据库里面去

1. 把 excel 另存为 .csv 格式 2. 用 Notepad 打开 .csv 文件, 第一行就是所有的字段 3. 创建表结构 create table yu_rt_01 as select Transaction_Id,Last_Update_Date,Last_Updated_By,Creation_Date,Created_By,Last_Update_Login,Request_Id,... ,Lcm_Shipment_Line_Id from rcv_transactions

java实现EXCEL数据导入到数据库中的格式问题的解决

之前作为项目甲方,加之java接触不多,在java web开发方面都是打下手的份. 对于EXCEL数据导入到数据库这个问题一直老是出现格式原因而导入失败也是未免惆怅,开发团队也是只说回去检查一下格式. 但是,每次导入的时候还会因为格式问题而惴惴不安,最近把代码拿来研究了一下,网上查了一下. 原来是从cell里取出数据后没有做格式匹配直接赋值导致的.因此,在取出数据写入数据库前做一下格式匹配就好了. SO FRUSTRATED BY THE PREVIOUS IGNORANCE! 1 //把EXC

Java版将EXCEL表数据导入到数据库中

1.采用第三方控件JXL实现 try { //实例化一个工作簿对象 Workbook workBook=Workbook.getWorkbook(new File("F://qzlx.xls")); //获取该工作表中的第一个工作表 Sheet sheet=workBook.getSheet(0); //获取该工作表的行数,以供下面循环使用 int rowSize=sheet.getRows(); for(int i=0;i<rowSize;i++) { //编号 String

数据从Excel数据导入到数据库的excel操作控件Spire.XLS for .NET

Spire.XLS for .NET控件是e-iceblue公司开发的一款支持对所有Excel格式类型文件进行操作的.NET 控件.它适用于任何类型的应用程序比如ASP.NET Web应用程序或者Windows桌面应用程序.Spire.XLS for .NET允许软件开发人员创建和管理Excel,而不需要安装Microsoft Excel或者Microsoft Office Excel.Spire.XLS for .NET和微软公司无隶属关系,也没有授权,赞助关系.相比Microsoft,Spi

代码执行批量Excel数据导入Oracle数据库

由于基于Oracle数据库上做开发,因此常常会需要把大量的Excel数据导入到Oracle数据库中,其实如果从事SqlServer数据库的开发,那么思路也是一样的,本文主要介绍如何导入Excel数据进入Oracle数据库的内容. 方法一: 1.准备数据:在excel中构造出需要的数据 2.将excel中的数据另存为文本文件(有制表符分隔的) 3.将新保存到文本文件中的数据导入到pl*sql中 在pl*sql中选择tools--text importer,在出现的窗口中选择Data from Te