當前位置:首頁 » 編程語言 » sql2008導出excel

sql2008導出excel

發布時間: 2022-03-15 11:04:43

A. sql server 2008能不能導出一個網頁上的數據到excel或者文本文檔怎麼做

網頁上的數據直接導估計夠嗆。需要看看是否能導出為xml格式,那樣有可能可以解讀。

B. 在SQL中如何將查詢結果直接導出為EXCEL表格

SQL Server有一些工具可用來導出和導入數據。這些簡單的工具,例如T-SQL的BULK INSERT語句,或者是BCP工具,都可以將數據以純文本文件的形式傳輸。如果需要處理任何一種其他類型的文件的導入導出,則我們必須使用DTS設計器或者DTS向導構建一個DTS包。最終生成的DTS包是一個我們必須測試、維護和操作的獨立的對象。而傳輸數據的工作則變得更加復雜,即使我們只是想要將一個簡單的Excel文件傳輸到文件系統中。

這里,我建議使用一個簡單,但是很有用的T-SQL 存儲程序,它可以通過使用鏈接伺服器(linked server)技術將數據導出到Excel 中。

為了實現導出,你必須首先創建一個空的有固定名字的Excel文件,並將其放置在伺服器上。我把它命名為Empty.xls,並放置在c:temp的目錄下。這個文件不會被刪除,並且在裝入數據之前,作為目標Excel文件的模板使用。

Empty.xls文件被構建的時候,只含有一個工作頁,名為ExcelTable,其中的第一行(僅有的一行)包含如下字母: A,B,C,...Z。這些字母可作為Excel表的列名稱。這意味著在一個查詢中,我們可以導出26個列。(給定的存儲程序代碼可被修改,以支持結果集中含有更多的列的情況。只需要在Excel模板中簡單地書寫F1, F2 ,F3...,然後更改程序中相應列的列表即可反映出變化了。)

sp_write2Excel是一個T-SQL存儲過程,它獲取目標Excel文件的名字和路徑,結果集中列的數量,以及T-SQL查詢。在查詢中應該使用轉換函數將所有的非字元串數據導入列中,因為最終的Excel單元中數據實際上都是字元串格式的。

這個過程將empty.xls模板文件拷貝到新的目標Excel文件中。然後它再構建一個鏈接伺服器到剛才的文件中,並使用動態的T-SQL來構建這個Excel文件,並且使用插入/選擇語句來將數據寫入其中。

以下是程序代碼:
Create proc sp_write2Excel (@fileName varchar(100),
@NumOfColumns tinyint,
@query varchar(200))
as
begin
declare @dosStmt varchar(200)
declare @tsqlStmt varchar(500)
declare @colList varchar(200)
declare @charInd tinyint

set nocount on

-- 構建列的列表 A,B,C ...
-- 直到達到列的數量.

set @charInd=0
set @colList = 'A'
while @charInd < @NumOfColumns - 1
begin
set @charInd = @charInd + 1
set @colList = @colList + ',' + char(65 + @charInd)
end

-- 創建一個空的Excel 文件作為目標文件,通過拷貝模板Excel 文件來命名
set @dosStmt = ' c:tempempty.xls ' + @fileName
exec master..xp_cmdshell @dosStmt

-- 創建一個「臨時」的鏈接伺服器到剛才的文件中,以用於「導出」數據
EXEC sp_addlinkedserver 'ExcelSource',
'Jet 4.0',
'Microsoft.Jet.OLEDB.4.0',
@fileName,
NULL,
'Excel 5.0'

-- 構建一個T-SQL 語句,用於實際導出查詢結果
-- 到目標鏈接伺服器上的表中
set @tsqlStmt = 'Insert ExcelSource...[ExcelTable$] ' + ' ( ' + @colList + ' ) '+ @query

print @tsqlStmt

-- 執行動態的 TSQL語句
exec (@tsqlStmt)

-- 刪除鏈接伺服器
EXEC sp_dropserver 'ExcelSource'
set nocount off
end
GO

程序使用實例:
Use master
go
exec sp_write2Excel
--目標excel文件
'c:tempNorthProcts.xls' ,

-- 結果中列的數量
3,

-- 將要導出結果的查詢
'select convert(varchar(10),ProctId),
ProctName,
Convert (varchar(20),UnitPrice) from Northwind..Procts'

結論,這個程序可作為一個通用的工具將數據導出到Excel工作頁中,而BCP工具則只能將數據導出到文本文件中。

我們可以使用這個程序來代替DTS包設計器,以及DTS向導,每當需要調用這樣的動作的時候,都可以用它將數據導出到excel 文件中。

C. 怎樣將sql server2008中的資料庫導出成excel表格

用SQL Server 2008中的導入/導出工具,數據源為SQL Server ,目標為Excel。

D. 如何把SQLServer表數據導出為Excel文件

1、打開軟體,在資料庫中有一張student表,現在要把這張表中的數據導出成excel文件。

E. SQL資料庫的表裡面的數據怎麼導出到EXCEL裡面

ASP實例代碼,直接將資料庫中的數據導出到EXCEL電子表中:

<!--#includefile="../conn.asp"-->
<%
dims,sql,filename,fs,myfile,x
Setfs=server.CreateObject("scripting.filesystemobject")
'--假設你想讓生成的EXCEL文件做如下的存放
filename=Server.MapPath("users.xls")
'--如果原來的EXCEL文件存在的話刪除它
iffs.FileExists(filename)then
fs.DeleteFile(filename)
endif
'--創建EXCEL文件
setmyfile=fs.CreateTextFile(filename,true)

'Setrs=Server.CreateObject("ADODB.Recordset")
'--從資料庫中把你想放到EXCEL中的數據查出來
'sql="select*fromTb_Execlorderbyiddesc"
'rs.Opensql,conn
StartTime=Request("StartTime")
EndTime=Request("EndTime")
StartEndTime="AddTimebetween#"&StartTime&"00:00:00#and#"&EndTime&"23:59:59#"

strSql="select*frommyeky_myusr"
SetrstData=conn.execute(strSql)
ifnotrstData.EOFandnotrstData.BOFthen

dimtrLine,responsestr
strLine=""
ForeachxinrstData.fields
strLine=strLine&x.name&chr(9)
Next

'--將表的列名先寫入EXCEL
myfile.writelinestrLine

DowhileNotrstData.EOF
strLine=""

foreachxinrstData.Fields
strLine=strLine&x.value&chr(9)
next
myfile.writelinestrLine

rstData.MoveNext
loop

endif

Response.Write"生成EXCEL文件成功,點擊<ahref=""users.xls""target=""_blank"">下載</a>!"

rstData.Close
setrstData=nothing
Conn.Close
SetConn=nothing
%>

F. sql server 2008怎麼導出表結構到excel

SELECT
表名 = case when a.colorder=1 then d.name else '' end,
表說明 = case when a.colorder=1 then isnull(f.value,'') else '' end,
-- 欄位序號 = a.colorder,
欄位名 = a.name,
標識 = case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
主鍵 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '√' else '' end,
類型 = b.name,
佔用位元組數 = a.length,
長度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小數位數 = isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允許空 = case when a.isnullable=1 then '√'else '' end,
默認值 = isnull(e.text,''),
欄位說明 = isnull(g.[value],'')
FROM
syscolumns a
left join
systypes b
on
a.xusertype=b.xusertype
inner join
sysobjects d
on
a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
left join
syscomments e
on
a.cdefault=e.id
left join
sys.extended_properties g
on
a.id=G.major_id and a.colid=g.minor_id
left join

sys.extended_properties f
on
d.id=f.major_id and f.minor_id=0
-- where d.name='C_PARTY_SPREADER' --如果只查詢指定表,加上此條件
order by
a.id,a.colorder

G. SQL2008導入excel數據

方法如下:

1、打開要導入的Excel文件,觀察第一列是為欄位還是數據。
2、打開SQLServer,在需要導入的數據點擊右鍵 【任務】-【導入數據】
出現導入導出向導。

3、點擊下一步 ,進入【選擇數據源】頁面,注意紅框設置。
4、點擊下一步 ,進入【選擇目標】頁面,注意紅框設置。

5、點擊下一步 ,進入【指定表復制或查詢】頁面,注意紅框設置。
6、點擊下一步 ,進入【選擇源表和源視圖】頁面,注意紅框設置。

7、下一步,直到完成。出現【執行結果頁面】。
8、最後在SqlServer查詢表。

H. sql server 導出excel

1、use test 要單獨成行,後面要跟go

2、testdb 要確定是那個資料庫的!

I. SQL server 怎麼用命令導出成EXCEL

下列方法可將SQL數據導出的Excel中:
1、導入到一個存在的Excel文件,且表頭已經設置:
insert into OPENROWSET('MICROSOFT.ACE.OLEDB.12.0','Excel 12.0;HDR=YES;DATABASE=c:\book1.xlsx',sheet1$) select * from 表。

2、導入為新文件:
EXEC master..xp_cmdshell 'bcp 資料庫名.dbo.表名 out "c:\book1.xls" /c -/S"伺服器名" /U"用戶名" -P"密碼"'。

EXEC master..xp_cmdshell 'bcp "SELECT * FROM 資料庫名.dbo.表名 ORDER BY 某欄位" queryout "c:\book1.xls" /c -/S"伺服器名" /U"用戶名" -P"密碼"'。

熱點內容
蔚來es8買哪個配置性價比高 發布:2025-07-22 18:21:46 瀏覽:275
寶可夢我的世界自創伺服器 發布:2025-07-22 18:09:31 瀏覽:226
男人的圖片密碼多少 發布:2025-07-22 18:07:45 瀏覽:367
ftp直接訪問nas 發布:2025-07-22 18:00:53 瀏覽:233
java的對象的屬性值 發布:2025-07-22 17:58:59 瀏覽:745
黑魂的伺服器是電腦和主機共用嗎 發布:2025-07-22 17:56:35 瀏覽:630
linux看時間 發布:2025-07-22 17:55:37 瀏覽:102
雲更新賬號已綁定其他伺服器 發布:2025-07-22 17:36:56 瀏覽:60
為什麼垃圾安卓老是卡 發布:2025-07-22 17:36:45 瀏覽:490
長沙cnc編程招聘信息 發布:2025-07-22 17:36:12 瀏覽:749