如何用SQL語句查詢Excel資料?如何用SQL語句查詢Excel資料?
Q:如何用SQL語句查詢Excel資料? A:下列語句可在SQL SERVER中查詢Excel工作表中的資料。
2007和2010版本:
SELECT*FROMOpenDataSource( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="c:\book1.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]複製代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$A1:D100]')複製代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$]')複製代碼
2003版本:
SELECT*FROMOpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]複製代碼
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$]')
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$A1:D100]')複製代碼
而且,還需要用擁有伺服器sysadmin角色許可權的登入帳號,先執行下列語句開啟SQL SERVER的'Ad Hoc Distributed Queries'開關。
exec sp_configure 'show advanced options',1;reconfigure; exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;複製代碼
執行查詢後,再用相反順序的語句,關閉'Ad Hoc Distributed Queries'開關。
exec sp_configure 'Ad Hoc Distributed Queries',0; reconfigure;exec sp_configure 'show advanced options',0;reconfigure;複製代碼
# 網站名稱: Excel技巧網|Excel 2010/2007新領地 # 署名作者: apolloh # 著作權聲明: 著作權 非作者本人轉載須經許可並註明作者和出處 # 本文來自: # 引用作品: # 適用版本: 2010 2007 2003以前版本 # 語言環境: 簡體中文 (頁麵右上方簡繁轉換) # 內容簡介: # 文章地址: http://www.exceltip.net/thread-5862-1-1-0.html # 學習方法: 掌握Excel技巧的關鍵是動手操作|下載≠知識
2007和2003都可用
SELECT*FROMOpenDataSource( 'Microsoft.ACE.OLEDB.12.0','Data Source="D:\test1.xls";User ID=Admin;Password=;Extended properties="Excel 12.0 Xml;HDR=YES;IMEX=1";')...[Sheet1$]複製代碼如何用SQL語句查詢Excel資料?
Q:如何用SQL語句查詢Excel資料? A:下列語句可在SQL SERVER中查詢Excel工作表中的資料。
2007和2010版本:
SELECT*FROMOpenDataSource( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="c:\book1.xlsx";User ID=Admin;Password=;Extended properties=Excel 12.0')...[Sheet1$]複製代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$A1:D100]')複製代碼
SELECT*FROMOPENROWSET('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\book1.xlsx', 'SELECT * FROM [Sheet1$]')複製代碼
2003版本:
SELECT*FROMOpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:\book1.xls";User ID=Admin;Password=;Extended properties=Excel 8.0')...[Sheet1$]複製代碼
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$]')
SELECT*FROMOPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=C:\book1.xls', 'SELECT * FROM [Sheet1$A1:D100]')複製代碼
而且,還需要用擁有伺服器sysadmin角色許可權的登入帳號,先執行下列語句開啟SQL SERVER的'Ad Hoc Distributed Queries'開關。
exec sp_configure 'show advanced options',1;reconfigure; exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;複製代碼
執行查詢後,再用相反順序的語句,關閉'Ad Hoc Distributed Queries'開關。
exec sp_configure 'Ad Hoc Distributed Queries',0; reconfigure;exec sp_configure 'show advanced options',0;reconfigure;複製代碼
# 網站名稱: Excel技巧網|Excel 2010/2007新領地 # 署名作者: apolloh # 著作權聲明: 著作權 非作者本人轉載須經許可並註明作者和出處 # 本文來自: # 引用作品: # 適用版本: 2010 2007 2003以前版本 # 語言環境: 簡體中文 (頁麵右上方簡繁轉換) # 內容簡介: # 文章地址: http://www.exceltip.net/thread-5862-1-1-0.html # 學習方法: 掌握Excel技巧的關鍵是動手操作|下載≠知識
2007和2003都可用
SELECT*FROMOpenDataSource( 'Microsoft.ACE.OLEDB.12.0','Data Source="D:\test1.xls";User ID=Admin;Password=;Extended properties="Excel 12.0 Xml;HDR=YES;IMEX=1";')...[Sheet1$]複製代碼