Sejauh ini, ini adalah pos terbaik untuk mengekspor ke excel dari SQL:
http://www.sqlteam.com/forums/topic.asp?TOPIC_ID =49926
Mengutip dari pengguna madhivanan
,
Selain menggunakan DTS dan wizard Ekspor, kita juga dapat menggunakan kueri ini untuk mengekspor data dari SQL Server2000 ke Excel
Buat file Excel bernama pengujian yang memiliki header yang sama dengan kolom tabel dan gunakan kueri ini
1 Ekspor data ke file EXCEL yang ada dari tabel SQL Server
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\testing.xls;',
'SELECT * FROM [SheetName$]') select * from SQLServerTable
2 Ekspor data dari Excel ke tabel SQL Server baru
select *
into SQLServerTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\testing.xls;HDR=YES',
'SELECT * FROM [Sheet1$]')
3 Ekspor data dari Excel ke tabel SQL Server yang ada (diedit)
Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\testing.xls;HDR=YES',
'SELECT * FROM [SheetName$]')
4 Jika Anda tidak ingin membuat file EXCEL terlebih dahulu dan ingin mengekspor data ke sana, gunakan
EXEC sp_makewebtask
@outputfile = 'd:\testing.xls',
@query = 'Select * from Database_name..SQLServerTable',
@colheaders =1,
@FixedFont=0,@lastupdated=0,@resultstitle='Testing details'
(Sekarang Anda dapat menemukan file dengan data dalam format tabel)
5 Untuk mengekspor data ke file EXCEL baru dengan heading (nama kolom), buat prosedur berikut
create procedure proc_generate_excel_with_columns
(
@db_name varchar(100),
@table_name varchar(100),
@file_name varchar(100)
)
as
--Generate column names as a recordset
declare @columns varchar(8000), @sql varchar(8000), @data_file varchar(100)
select
@columns=coalesce(@columns+',','')+column_name+' as '+column_name
from
information_schema.columns
where
[email protected]_name
select @columns=''''''+replace(replace(@columns,' as ',''''' as '),',',',''''')
--Create a dummy file to have actual data
select @data_file=substring(@file_name,1,len(@file_name)-charindex('\',reverse(@file_name)))+'\data_file.xls'
--Generate column names in the passed EXCEL file
set @sql='exec master..xp_cmdshell ''bcp " select * from (select '[email protected]+') as t" queryout "'[email protected]_name+'" -c'''
exec(@sql)
--Generate data in the dummy file
set @sql='exec master..xp_cmdshell ''bcp "select * from '[email protected]_name+'..'[email protected]_name+'" queryout "'[email protected]_file+'" -c'''
exec(@sql)
--Copy dummy file to passed EXCEL file
set @sql= 'exec master..xp_cmdshell ''type '[email protected]_file+' >> "'[email protected]_name+'"'''
exec(@sql)
--Delete dummy file
set @sql= 'exec master..xp_cmdshell ''del '[email protected]_file+''''
exec(@sql)
Setelah membuat prosedur, jalankan dengan memberikan nama database, nama tabel dan jalur file:
EXEC proc_generate_excel_with_columns 'your dbname', 'your table name','your file path'
Ini adalah halaman 29 kekalahan tetapi itu karena orang lain menunjukkan berbagai cara lain serta orang-orang yang mengajukan pertanyaan seperti ini tentang cara melakukannya.
Ikuti utas itu sepenuhnya dan lihat berbagai pertanyaan yang diajukan orang dan bagaimana mereka diselesaikan. Saya mengambil sedikit pengetahuan hanya dengan membaca sekilas dan telah menggunakan sebagian darinya untuk mendapatkan hasil yang diharapkan.
Untuk memperbarui sel tunggal
Seorang anggota juga di sana Peter Larson memposting yang berikut:Saya pikir satu hal yang hilang di sini. Sangat bagus untuk dapat Mengekspor dan Mengimpor ke file Excel, tetapi bagaimana dengan memperbarui sel tunggal? Atau rentang sel?
Ini adalah prinsip bagaimana Anda mengelolanya
update OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\test.xls;hdr=no',
'SELECT * FROM [Sheet1$b7:b7]') set f1 = -99
Anda juga dapat menambahkan rumus ke Excel menggunakan ini:
update OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=c:\test.xls;hdr=no',
'SELECT * FROM [Sheet1$b7:b7]') set f1 = '=a7+c7'
Mengekspor dengan nama kolom menggunakan T-SQL
Anggota Mladen Prajdic juga memiliki entri blog tentang cara melakukan ini di sini
Referensi:www.sqlteam.com (btw ini adalah blog/forum yang sangat bagus untuk siapa saja yang ingin mendapatkan lebih banyak dari SQL Server). Untuk referensi kesalahan saya menggunakan ini
Kesalahan yang mungkin terjadi
Jika Anda mendapatkan kesalahan berikut:
Kemudian jalankan ini:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
GO
RECONFIGURE;
GO