介绍两种途径将数据从EXCEL中导入到SQL SERVER。
一、在程序中,用ADO.NET。代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | //连接串 string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=" + [EXCEL文件,含路径] + ";" ; OleDbConnection conn = new OleDbConnection(strConn); conn. Open (); DataTable dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,new object[] { null , null , null , "TABLE" }); DataSet ds = new DataSet(); //一个EXCEL文件可能有多个工作表,遍历之 foreach( DataRow dr in dtSchema. Rows ) { string table = dr[ "TABLE_NAME" ].ToString(); string strExcel = "SELECT * FROM [" + table + "]" ; ds.Tables. Add ( table ); OleDbDataAdapter myCommand = new OleDbDataAdapter(strExcel,conn); myCommand.Fill(ds, table ); } conn. Close (); |
这样,读取出来的数据就藏在DataSet里了。
采用这种方式,数据库所在机器不必装有EXCEL。
二、在查询分析器里,直接写SQL语句:
如果是导入数据到现有表,则采用
1 2 | INSERT INTO 表 SELECT * FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0' , 'Excel 5.0;HDR=YES;DATABASE=c:/test.xls' ,sheet1$) |
的形式
如果是导入数据并新增表,则采用
1 2 | SELECT * INTO 表 FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0' , 'Excel 5.0;HDR=YES;DATABASE=c:/test.xls' ,sheet1$) |
的形式。
以上语句是将EXCEL文件里SHEET1工作表中所有的列都读进来,如果只想导部分列,可以
1 2 | INSERT INTO 表(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0' , 'Excel 5.0;HDR=YES;DATABASE=c:/test.xls' ,sheet1$) |
其实可以将
1 2 | OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0' , 'Excel 5.0;HDR=YES;DATABASE=c:/test.xls' ,sheet1$) |
当成一个表。
不管是哪种方式,哪种途径,系统都会默认将第一行上的内容作为字段名。
本文由职坐标整理并发布,以上就是EXCEL导入数据到SQL Server数据库的方法介绍,操作很简单的,大家按照上面步骤进行操作即可,希望能对大家有所帮助!
转载自:http://sql.zhizuobiao.com/sql-18050900045/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现