Ich habe das SSIS-Paket, das Daten von der Tabelle in die Excel-Datei exportiert
Kontrollfluss: -
Datenfluss: -
Das ist mein Schritt: -
Ich habe die Abfrage wie Select * From Table Where --Some Condition
Ich erhalte 3000 Zeilen von 10000 Zeilen und lege diese 3000 Zeilen in mein Excel-Blatt. Aber wenn ich mein Excel-Blatt öffne, habe ich eine Bildlaufleiste gesehen, die bis zur 10000. Reihe reicht und damit endet auch meine Excel-Blattgröße. Wie kann ich meine Excel-Blattgröße reduzieren? mein Excel-Blatt enthält nur 3000 Zeilen, warum leere Zellen, die bis 10000. Reihe gehen?
SQL Server 2008 & amp; Visual Studio 2008 mit BIDS
Ich glaube, Ihr Problem betrifft die Methode, mit der Sie die Datei erstellen. Sie haben zwei Alternativen und beide sollten Ihr Problem beheben:
Lösung # 1:
Sie können eine Excel-Datei mit diesen vordefinierten Spalten erstellen, im Wesentlichen Ihre leere Ausgabedatei - dies würde als Ihre "Vorlagendatei" dienen. Dein Flow wäre dann das:
Hinweis: Sie haben bereits die Schritte 2 bis 3 abgeschlossen. Sie müssen lediglich sicherstellen, dass Sie eine Verbindung mit der neuen Excel-Datei herstellen. Um zu verdeutlichen, befindet sich Schritt 1 außerhalb der Kontrollfluss-Aufgabe.
Dieser Weg ist hilfreich, weil Sie immer eine leere und konsistent formatierte Excel-Datei zum Kopieren und Arbeiten haben.
Lösung # 2:
Die andere Option besteht darin, eine Skriptaufgabe zu verwenden und die Excel-Datei zu erstellen - Sie können die Daten auch in diese Aufgabe laden. Dies erfordert ein grundlegendes Verständnis von VB.NET oder C #. Grundsätzlich müssten Sie eine XLS-Bibliothek (wie NPOI ) bekommen. Dies ist komplizierter, bietet Ihnen jedoch die beste Funktionalität.
Ich empfehle Ihnen, Lösung Nr. 1 zu probieren und zu sehen, wie das für Sie funktioniert.
Drop table SheetName
löscht das Blatt nicht, sondern nur deletes the row
. Wenn Sie zum ersten Mal 10K Zeilen geladen haben und dann das Paket erneut ausgeführt haben, indem Sie die Anzahl der Zeilen auf 3K beschränkt haben, enthält die Excel-Datei immer noch diese 10K leeren Zeilen, da das Blatt zusammen mit empty spaces
beibehalten wird.
Sie können Skript-Aufgabe verwenden, um das Blatt mit COM-Objekten zu löschen. Dafür müssen Sie die Excel-PIA (Primary Interop Assemply) platzieren, um sie für VSA sichtbar zu machen oder eine neue Excel-Datei bei jeder Ausführung des Pakets zu erstellen / p>
Sonst wie von Nicarus vorgeschlagen, verwenden Sie File System Task
, um die vorhandene Datei zu löschen und bei jeder Ausführung eine neue Excel-Datei zu erstellen.
Diagramm:
Dateisystemaufgabe:
Verwenden Sie die gleichen Komponenten und die Abfrage für Create Table
mit Execute SQL task
und Ihre DFT
Tags und Links sql sql-server