Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Exportovanje podataka u Excel

[es] :: MS SQL :: Exportovanje podataka u Excel

[ Pregleda: 6626 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Car78

Član broj: 59313
Poruke: 20
80.65.165.*



Profil

icon Exportovanje podataka u Excel06.06.2005. u 08:16 - pre 229 meseci
Treba mi jedan primjer procedure za exportovanje podataka u Excel, ako ko ima - najednostavniji select ciji rezultat treba proslijediti u Excel fajl ??
 
Odgovor na temu

franjo_tahi
Franjo Tahi
Zagreb

Član broj: 34712
Poruke: 399
194.126.213.*



+1 Profil

icon Re: Exportovanje podataka u Excel06.06.2005. u 10:42 - pre 229 meseci
Evo ti primjera, nije dorađen, ali radi. EXCEL_TLB možeš nači na netu, a ako ne uspiješ javi pa ću ti poslati.
Prikačeni fajlovi
 
Odgovor na temu

Car78

Član broj: 59313
Poruke: 20
80.65.165.*



Profil

icon Re: Exportovanje podataka u Excel06.06.2005. u 13:24 - pre 228 meseci
Pogledao sam ovaj fajl, malo mi je nejasan (dobro mi je nejasan) o cemu se ovdje radi ??? Koliko vidim ovdje se radi o nekim paketu, interfejsima, itd. o necemu sto nisam bas do sada nikada gledao, najblize mi je nekoj JAVA strukturi koda . Meni " jednostavno" treba Uskladistena procedura tj. upit koji se cuva na SQL Serverovoj bazi podataka a omogucuje export podataka iz neke tabele u Excel fajl jednostavnim pokretanjem procedure u Query Anayzer.
 
Odgovor na temu

ivan jeremic
Bgd

Član broj: 51138
Poruke: 48
80.93.234.*



Profil

icon Re: Exportovanje podataka u Excel06.06.2005. u 14:13 - pre 228 meseci
Nemozes da radis to iz stored procedure. Za to se koristi DTS.
E sad .. posto me jako mrzi da ti opisujem ceo proces evo jako nezgrapnog objasnjenja:
IZ DTS alata (pokreni ga iz program grupe Microsoft SQL server) izaberi za source tvoj SQL server, za destination tvoj excel fajl. U sledecom koraku izaberi opciju use query to transfer data i tamo ukucaj npr exec spMojaProcedura. Ako zelis da ovo ponavljas vise puta ili eventualno postavis kao job stikliraj opciju Save as DTS package i okini. On ce prebaciti podatke iz sp u excel. Ako si stiklirao onu opciju za package onda u local packages imas taj tvoj paket po imenu koje si mu dao pa mozes da mu odradis desni mis > schedule as job i kazes mu kada da se okida i onda on to radi automatski u zadato vreme i uffff ... to je to.
 
Odgovor na temu

Car78

Član broj: 59313
Poruke: 20
80.65.165.*



Profil

icon Re: Exportovanje podataka u Excel06.06.2005. u 14:33 - pre 228 meseci

"Nemozes da radis to iz stored procedure. Za to se koristi DTS. " Dali si siguran za to posto sam nasao na web-u ovu proceduru ali nemogu da je pokrenem, dali je problem do parametara koje joj prosledujem (sto cisti sumnjam) ili nesto drugo ali zapinje negdje ovdje

EXEC @hr = sp_OACreate 'SQLOLE.SQLServer', @SQLServer OUT
IF @hr <> 0
BEGIN
PRINT 'error create SQLOLE.SQLServer'
RETURN

Pa oko neko uspije da pokrene da mi kaze sto da cinim !!


/*
Version: SQL Server 6.5
Created by: Alexander Chigrik
http://www.MSSQLCity.com/ - all about MS SQL
(SQL Server Articles, FAQ, Scripts, Tips and Test Exams).

This stored procedure can be used to insert the result set of the
particular select statement into Excel file (c:\ImportToExcel.xls,
by default).
You can pass the server name, user name, user password, the select
statement to execute, and the file name to store the results set,
as in the example below:

EXEC ExportToExcel @server = '.',
@uname = 'sa',
@QueryText = 'SELECT au_fname FROM pubs..authors',
@filename = 'c:\ImportToExcel.xls'
*/

IF OBJECT_ID('ExportToExcel') IS NOT NULL DROP PROC ExportToExcel
GO

CREATE PROCEDURE ExportToExcel (
@server varchar(30) = null,
@uname varchar(30) = null,
@pwd varchar(30) = null,
@QueryText varchar(200) = null,
@filename varchar(100) = 'c:\ImportToExcel.xls'
)
AS
DECLARE @SQLServer int,
@QueryResults int,
@CurrentResultSet int,
@object int,
@WorkBooks int,
@WorkBook int,
@Range int,
@hr int,
@Columns int,
@Rows int,
@indColumn int,
@indRow int,
@off_Column int,
@off_Row int,
@code_str varchar(100),
@result_str varchar(255)

IF @QueryText IS NULL
BEGIN
PRINT 'Set the query string'
RETURN
END

-- Sets the server to the local server
IF @server IS NULL SELECT @server = @@servername

-- Sets the username to the current user name
IF @uname IS NULL SELECT @uname = SYSTEM_USER

SET NOCOUNT ON

EXEC @hr = sp_OACreate 'SQLOLE.SQLServer', @SQLServer OUT
IF @hr <> 0
BEGIN
PRINT 'error create SQLOLE.SQLServer'
RETURN
END

-- Connect to the SQL Server
IF @pwd IS NULL
BEGIN
EXEC @hr = sp_OAMethod @SQLServer, 'Connect', null, @server, @uname
IF @hr <> 0
BEGIN
PRINT 'error CONNECT'
RETURN
END
END
ELSE
BEGIN
EXEC @hr = sp_OAMethod @object, 'Connect', null, @server, @uname, @pwd
IF @hr <> 0
BEGIN
PRINT "error Connect"
RETURN
END
END

SELECT @result_str = 'ExecuteWithResults("' + @QueryText + '")'
EXEC @hr = sp_OAMethod @SQLServer, @result_str, @QueryResults OUT
IF @hr <> 0
BEGIN
PRINT 'error with method ExecuteWithResults'
RETURN
END

EXEC @hr = sp_OAMethod @QueryResults, 'CurrentResultSet', @CurrentResultSet OUT
IF @hr <> 0
BEGIN
PRINT 'error get CurrentResultSet'
RETURN
END

EXEC @hr = sp_OAMethod @QueryResults, 'Columns', @Columns OUT
IF @hr <> 0
BEGIN
PRINT 'error get Columns'
RETURN
END

EXEC @hr = sp_OAMethod @QueryResults, 'Rows', @Rows OUT
IF @hr <> 0
BEGIN
PRINT 'error get Rows'
RETURN
END

EXEC @hr = sp_OACreate 'Excel.Application', @object OUT
IF @hr <> 0
BEGIN
PRINT 'error create Excel.Application'
RETURN
END

EXEC @hr = sp_OAGetProperty @object, 'WorkBooks', @WorkBooks OUT
IF @hr <> 0
BEGIN
PRINT 'error create WorkBooks'
RETURN
END

EXEC @hr = sp_OAGetProperty @WorkBooks, 'Add', @WorkBook OUT
IF @hr <> 0
BEGIN
PRINT 'error with method Add'
RETURN
END

EXEC @hr = sp_OAGetProperty @object, 'Range("A1")', @Range OUT
IF @hr <> 0
BEGIN
PRINT 'error create Range'
RETURN
END

SELECT @indRow = 1
SELECT @off_Row = 0
SELECT @off_Column = 1

WHILE (@indRow <= @Rows)
BEGIN
SELECT @indColumn = 1

WHILE (@indColumn <= @Columns)
BEGIN

EXEC @hr = sp_OAMethod @QueryResults, 'GetColumnString', @result_str OUT, @indRow, @indColumn
IF @hr <> 0
BEGIN
PRINT 'error get GetColumnString'
RETURN
END

EXEC @hr = sp_OASetProperty @Range, 'Value', @result_str
IF @hr <> 0
BEGIN
PRINT 'error set Value'
RETURN
END

EXEC @hr = sp_OAGetProperty @Range, 'Offset', @Range OUT, @off_Row, @off_Column
IF @hr <> 0
BEGIN
PRINT 'error get Offset'
RETURN
END

SELECT @indColumn = @indColumn + 1

END

SELECT @indRow = @indRow + 1
SELECT @code_str = 'Range("A' + LTRIM(str(@indRow)) + '")'
EXEC @hr = sp_OAGetProperty @object, @code_str, @Range OUT
IF @hr <> 0
BEGIN
PRINT 'error create Range'
RETURN
END

END

SELECT @result_str = "exec master..xp_cmdshell 'del " + @filename + "', no_output"
EXEC(@result_str)
SELECT @result_str = 'SaveAs("' + @filename + '")'
EXEC @hr = sp_OAMethod @WorkBook, @result_str
IF @hr <> 0
BEGIN
PRINT 'error with method SaveAs'
RETURN
END

EXEC @hr = sp_OAMethod @WorkBook, 'Close'
IF @hr <> 0
BEGIN
PRINT 'error with method Close'
RETURN
END

EXEC @hr = sp_OADestroy @object
IF @hr <> 0
BEGIN
PRINT 'error destroy Excel.Application'
RETURN
END

EXEC @hr = sp_OADestroy @SQLServer
IF @hr <> 0
BEGIN
PRINT 'error destroy SQLOLE.SQLServer'
RETURN
END
GO
 
Odgovor na temu

[es] :: MS SQL :: Exportovanje podataka u Excel

[ Pregleda: 6626 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.