SQLServer 从Excel批量导入数据

时间:2022-07-23 04:48:42

1、从excel查询数据

(1)Select *
From OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:/a.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...Sheet1$

这里需要注意的是excel表中的第一行是标题行,不属于数据记录。而且在查询的时候,它是按照ASIC排序的,除非指定列的顺序。

(2)select *  from OpenRowSet('Microsoft.Jet.OLEDB.4.0','Excel 8.0;hdr=yes;IMEX=1;DataBase=C:/a.xls','select * from [sheet1$]')

HDR=YES 有两个值:YES/NO,表示第一行是否字段名,默认是YES,第一行是字段名;
IMEX=1 解决数字与字符混合时,识别不正常的情况

2、把excel里的数据导入到sqlserver表中

(1)insert into userinfo(username,userpwd,userclass)
Select *
From OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:/a.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...Sheet1$

这里需要注意的是excel表中的第一行是标题行,不属于数据记录。而且在查询的时候,它是按照ASIC排序的,除非指定列的顺序。
into 表(字段1,字段2,...)要填写上。

(2)select * into userinfo from OpenRowSet('Microsoft.Jet.OLEDB.4.0','Excel 8.0;hdr=No;IMEX=1;DataBase=C:/a.xls','select * from [sheet1$]')

应用上面的语句,整个表里面的数据将被清空,附上的是excel里面的数据记录。

 

3、从SQLSERVER导入到EXCEL中

INSERT INTO OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:/test.xls";User ID=Admin;Password=;Extended properties=Excel 8.0' )...Sheet1$
          SELECT productno, productname, modelspec, maxinventory, mininventory
        FROM product

这里注意excel在建立后要写明表头。