it-swarm-eu.dev

Wie übertragen oder exportieren Sie SQL Server 2005-Daten nach Excel?

Ich habe eine einfache SQL-Auswahlabfrage und möchte die Ergebnisse in eine Excel-Datei kopieren. Ich kann nur als .csv speichern und die Konvertierung in .xls erzeugt eine super hässliche Ausgabe. Soweit ich das beurteilen kann (mit Google), scheint dies jedenfalls nicht so einfach zu sein. Jede Hilfe wäre sehr dankbar.

47
YourMomzThaBomb

Verwenden Sie "Externe Daten" aus Excel. Es kann die Verbindung ODBC zum Abrufen von Daten aus einer externen Quelle verwenden: Daten/Externe Daten abrufen/Neue Datenbankabfrage

Selbst wenn sich die Daten in der Datenbank ändern, können Sie sie auf diese Weise problemlos aktualisieren.

40
Sunny Milenov

SSIS ist ein Kinderspiel für solche Dinge und sehr einfach (und genau dafür ist es genau das).

  1. Klicken Sie mit der rechten Maustaste auf die Datenbank in SQL Management Studio
  2. Gehen Sie zu Aufgaben und dann zu Daten exportieren. Sie sehen dann einen benutzerfreundlichen Assistenten.
  3. Ihre Datenbank wird die Quelle sein, Sie können Ihre SQL-Abfrage eingeben
  4. Wählen Sie Excel als Ziel aus
  5. Führen Sie es am Ende des Assistenten aus

Wenn Sie möchten, können Sie auch das SSIS-Paket speichern (es gibt eine Option am Ende des Assistenten), damit Sie es nach einem Zeitplan oder ähnlichem ausführen können (und bei Bedarf sogar öffnen und ändern, um weitere Funktionen hinzuzufügen).

59
Ryan Farley

Ich habe eine einfache Möglichkeit gefunden, Abfrageergebnisse aus SQL Server Management Studio 2005 nach Excel zu exportieren.

1) Wählen Sie den Menüpunkt Abfrage -> Abfrageoptionen.

2) Aktivieren Sie das Kontrollkästchen unter Ergebnisse -> Raster -> Fügen Sie beim Kopieren oder Speichern der Ergebnisse Spaltenüberschriften hinz.

Wenn Sie danach Alle auswählen und die Abfrageergebnisse kopieren, können Sie sie in Excel einfügen, und die Spaltenüberschriften werden angezeigt.

26
Mikhail Glukhov

Siehe dies


Dies ist bei weitem der beste Beitrag für den Export von SQL nach Excel:

http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926

So zitieren Sie aus Benutzer madhivanan:

Abgesehen von der Verwendung von DTS und des Exportassistenten können wir diese Abfrage auch zum Exportieren von Daten von SQL Server 2000 nach Excel verwenden

Erstellen Sie eine Excel-Datei mit dem Namen testing, deren Überschriften mit denen der Tabellenspalten übereinstimmen, und verwenden Sie diese Abfragen

1 Exportieren Sie Daten aus der SQL Server-Tabelle in eine vorhandene Excel-Datei

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;', 
    'SELECT * FROM [SheetName$]') select * from SQLServerTable

2 Exportieren Sie Daten aus Excel in eine neue SQL Server-Tabelle

select * 
into SQLServerTable FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;HDR=YES', 
    'SELECT * FROM [Sheet1$]')

3 Exportieren Sie Daten aus Excel in eine vorhandene SQL Server-Tabelle

Insert into SQLServerTable Select * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
    'Excel 8.0;Database=D:\testing.xls;HDR=YES', 
    'SELECT * FROM [SheetName$]')

4 Wenn Sie keine Excel-Datei im Voraus erstellen und Daten in diese exportieren möchten, verwenden Sie

EXEC sp_makewebtask 
    @outputfile = 'd:\testing.xls', 
    @query = 'Select * from Database_name..SQLServerTable', 
    @colheaders =1, 
    @FixedFont=0,@lastupdated=0,@resultstitle='Testing details'

(Jetzt können Sie die Datei mit den Daten in Tabellenform finden.)

5 Gehen Sie wie folgt vor, um Daten in eine neue Excel-Datei mit Überschrift (Spaltennamen) zu exportieren

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)

Führen Sie die Prozedur nach dem Erstellen aus, indem Sie den Datenbanknamen, den Tabellennamen und den Dateipfad angeben:

EXEC proc_generate_Excel_with_columns 'your dbname', 'your table name','your file path'

Es sind satte 29 Seiten, aber das liegt daran, dass andere verschiedene andere Wege zeigen und Leute wie diese Fragen dazu stellen, wie es geht.

Folgen Sie diesem Thread vollständig und schauen Sie sich die verschiedenen Fragen an, die die Teilnehmer gestellt haben, und wie sie gelöst werden. Ich habe einiges an Wissen gesammelt, es nur überflogen und Teile davon verwendet, um die erwarteten Ergebnisse zu erzielen.

Um einzelne Zellen zu aktualisieren

Ein Mitglied auch dort Peter Larson schreibt folgendes: Ich denke, hier fehlt eine Sache. Es ist großartig, in Excel-Dateien exportieren und importieren zu können, aber wie wäre es mit der Aktualisierung einzelner Zellen? Oder eine Reihe von Zellen?

Dies ist das Prinzip, wie Sie das schaffen

update OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=c:\test.xls;hdr=no', 
'SELECT * FROM [Sheet1$b7:b7]') set f1 = -99

Sie können Excel auch folgendermaßen Formeln hinzufügen:

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'

Exportieren mit Spaltennamen mit T-SQL

Mitglied Mladen Prajdic hat auch einen Blogeintrag, wie das geht hier

Referenzen: www.sqlteam.com (Übrigens ist dies ein ausgezeichnetes Blog/Forum für alle, die mehr aus SQL Server herausholen möchten).

13
JonH

In diesem Video erfahren Sie Schritt für Schritt, wie Sie Daten nach Excel exportieren. Es ist eine großartige Lösung für "einmalige" Probleme, bei denen Sie nach Excel exportieren müssen:
Ad-hoc-Berichterstattung

5

Wenn Sie eher nach Ad-hoc-Elementen als nach Elementen suchen, die Sie in SSIS einfügen würden. Markieren Sie in SSMS einfach das Ergebnisraster, kopieren Sie es und fügen Sie es in Excel ein. Es ist nicht elegant, funktioniert aber. Dann können Sie als native .xls anstelle von .csv speichern

5
Mitchel Sellers

Es ist viel einfacher, es einfach aus Excel heraus zu machen. !! Öffnen Sie Excel-Daten> Daten importieren/exportieren> Daten importieren. Klicken Sie neben dem Dateinamen auf die Schaltfläche "Neue Quelle". Klicken Sie im Assistenten für Datenverbindungen auf Microsoft SQL Server. Weiter klicken. Geben Sie den Servernamen und die Anmeldeinformationen ein. Wählen Sie in der Dropdown-Liste die Datenbank aus, in der sich die gewünschte Tabelle befindet. Wählen Sie Ihre Tabelle aus und klicken Sie dann auf Weiter .... Geben Sie eine Beschreibung ein, wenn Sie möchten, und klicken Sie auf Fertig stellen. Wenn Sie fertig sind und wieder in Excel sind, klicken Sie einfach auf "OK".

3
Bill Anderson

Erstellen Sie die Excel-Datenquelle und fügen Sie die Werte ein.

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0', 
'Excel 8.0;Database=D:\testing.xls;', 
'SELECT * FROM [SheetName$]') select * from SQLServerTable

Weitere Informationen finden Sie hier http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=49926

2
Prathap

Ein praktisches Tool SQL in Excel konvertieren konvertiert die SQL-Tabelle oder das SQL-Abfrageergebnis ohne Programmierung in eine Excel-Datei.

Hauptfunktionen - Konvertieren/Exportieren einer SQL-Tabelle in eine Excel-Datei - Konvertieren/Exportieren mehrerer Tabellen (mehrere Abfrageergebnisse) in mehrere Excel-Arbeitsblätter. - Flexible TSQL-Abfrage zulassen, die mehrere SELECT-Anweisungen oder andere komplexe Abfrageanweisungen enthalten kann.

B. Grüße, Alex

1
Alex

Es gibt verschiedene Tools zum Exportieren/Importieren von SQL Server nach Excel.

Google ist dein Freund :-)

Wir verwenden hier DbTransfer (einer von denen, die eine komplette Datenbank auch in eine Excel-Datei exportieren können): http://www.dbtransfer.de/Products/DbTransfer .

Wir haben die OpenRowset-Funktion von SQL Server bereits verwendet, aber ich war nie zufrieden damit, da sie nicht sehr einfach zu bedienen ist und keine ausreichenden Funktionen und keine ausreichende Geschwindigkeit bietet.

1
Michael Geller

Sie können immer ADO verwenden, um die Ergebnisse aus einem Recordset-Objekt in die Arbeitsblattzellen zu schreiben

1
Russ Cam

Probieren Sie das Tool "Daten importieren und exportieren (32-Bit)" aus. Verfügbar nach der Installation von MS SQL Management Studio Express 2012.

Mit diesem Tool ist es sehr einfach, eine Datenbank, eine Tabelle oder eine eigene SQL-Abfrage auszuwählen und ein Ziel auszuwählen (z. B. eine MS Excel-Datei).

0
Dennis