EXCEL 导入 SqlServer2000 之一:如何查询EXCEL 表 ?

wzhiyuan 2005-07-26 11:16:59
CSDN以前的相关内容也查过,我看了,不过还有不少不明白的地方,所以我把这些问题分解一下问.

引子:
/*-----------以下是引自zjcxc (邹建)
http://search.csdn.net/Expert/topic/2461/2461899.xml?temp=.8789942 --------*/
--从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:
--如果接受数据导入的表已经存在
insert into 表 select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
/*-----------------------引用结束-------------------------------------*/

这里先不说插入,先说查询吧,上面的sql改一下
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
我在查询分析器里执行,报错如下:
OLE DB 提供程序 'MICROSOFT.JET.OLEDB.4.0' 报错。

[OLE/DB provider returned message: 找不到可安装的 ISAM。]
OLE DB 错误跟踪[OLE/DB Provider 'MICROSOFT.JET.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: ]。

这是什么问题?
...全文
245 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yyd415 2005-07-29
  • 打赏
  • 举报
回复
做程序要耐心加细心,不要老是copy!
wzhiyuan 2005-07-29
  • 打赏
  • 举报
回复
谢谢。选择问题搞定了。结帐。
chichunhua 2005-07-28
  • 打赏
  • 举报
回复
MARK
zjcxc 元老 2005-07-28
  • 打赏
  • 举报
回复
select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$) a,OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$) b
where .....
Andy__Huang 2005-07-26
  • 打赏
  • 举报
回复
要插入的表的字段要與Excel的字段對應,而且在查詢時那個Excel文件不能打開。

你最好要指明字段,不要用select * from ....
wzhiyuan 2005-07-26
  • 打赏
  • 举报
回复
果然是老大呀,厉害!我的确是复制的FAQ里的。
现在好了,可以用select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
查询了。也可以象操作数据表一样,用select proname,price,leiid from .... where price>100 order by id这样的复杂些的语句了。


现在我接着问一下,怎么样进行联接表查询。
比如我这个.xls文件里,有两个数据表,产品表produc$有三个字段,ID,name,catID;类别表cat有两个字段ID,name,其中产品的catID字段对应类别表的ID.现在我想象操作普通的数据库表一样,进行联合查询: select prodcut$.ID,prodcut$.proname,cat$.name from ...... prodcut$ join cat$ on prodcut$.catID=cat$.ID
应该怎么写?
zjcxc 元老 2005-07-26
  • 打赏
  • 举报
回复
估计你是从FAQ复制的吧? csdn自动在里面加了空格.
zjcxc 元老 2005-07-26
  • 打赏
  • 举报
回复
Excel 5.0 --> Excel 5.0
多一个空格都是不对的,改为下面的

OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
wzhiyuan 2005-07-26
  • 打赏
  • 举报
回复
再加20分。
不插入,直接查询不行吗?
我的test.xls是从数据库用企业管理器直接导出(选择excel97-2000)的。OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,'Excel 5.0;HDR=YES;DATABASE=c:\test.xls',sheet1$)
这里的驱动或excel的版本号是不是应该改成别的?
duanduan1122 2005-07-26
  • 打赏
  • 举报
回复
help up

34,575

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧