发布网友 发布时间:2022-04-22 13:44
共2个回答
热心网友 时间:2023-07-04 04:36
通过sql,将服务器数据导入到07版excel:
INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:/XXX/AA.xlsx;' , 'SELECT A1,B1 FROM [Sheet1$]')select A1,B1 from [Table]'
注意:
1、两个select所带的字段要求一一对应,若不对应则需要指定字段;
2、excel表需事先输入指定字段A1,B1;
3、命令行【SELECT A1,B1 FROM [Sheet1$]】的sheet名需与excel表的sheet名对应,若不对应则提示:"Microsoft Access 数据库引擎找不到对象“Sheet1$”。
通过sql,将07版excel数据导入到服务器:
INSERT INTO [Table]
(A1,B1)
select A1,B1
FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=D:/XXX/AA.xls;Extended Properties=Excel 12.0')...[Sheet1$];
注意:
1、两个select所带的字段要求一一对应,若不对应则需要指定字段;
2、sql的tabel表需事先输入指定字段A1,B1;
3、命令行【SELECT A1,B1 FROM [Sheet1$]】的sheet名需与excel表的sheet名对应,若不对应则提示:"Microsoft Access 数据库引擎找不到对象“Sheet1$”。
通过excel,将服务器数据导入到07版excel:
1、在数据选项卡,选择SQL SERVER数据源;
2、在弹出的选项框中,输入服务器IP地址和帐号密码;
3、选择具体输入的表格;
4、弹出的选项框中,输入SQL SERVER服务器密码;
5、点击确定后,SQL SERVER连接数据源并读取数据;
通过sql,实现服务器数据和excel数据联合查询:
select * from [Table] t1,(select A1,B1FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=D:/XXX/AA.xls;Extended Properties=Excel 12.0')...[Sheet1$];) t2where t1.A1 = t2.A1
注意:
1、将excel查询的结果集视为sql的tabel表;
2、excel表格需为关闭状态;
热心网友 时间:2023-07-04 04:37
一般来说excel的字段都是智能识别类型的。如果没有特殊设定,当以格子中输入全数字的话就默认位数字,输入类似时间格式的话也会自动的改成时间。你可以右击excel强制指定类型。至于excel和数据库类型的对应,数值类型可以对应成int或者float ,文本常规类型对应成char varchar,日期对应为datetime。别的就没有相近的类型对应了追问谢谢,就如你所说的,数值类型对应成int或者float,我刚开始是用的int不可以,之后改成float就解决了,不知道是神马原因,烦请赐教追答可能你数据中某一个值太大,超出了int所能表示的范围。或者有小数存在