Exporter des données vers un fichier Excel en utilisant SSIS

J'ai le paquet SSIS qui exporte des données de la table vers le fichier Excel

Flux De Contrôle: -

Control Flow

Flux De Données: -

enter image description here

C'est Mon Étape :-

  1. Drop Excel Table
  2. Créer un Tableau Excel avec le format de mon Sélectionnez la Requête que j'ai utilisé pour récupérer des données à partir de la base de données
  3. Insérer des Données à partir de la Base de données de fichier Excel

J'Ai Utilisé La Requête Comme Select * From Table Where --Some Condition

je récupère 3000 lignes sur 10000 lignes et je mets ces 3000 lignes dans ma feuille excel. Mais quand ouvrir ma feuille d'excel j'ai vu scrollbar qui va jusqu'à 10000e rangée et se termine donc ma taille de feuille d'excel augmente aussi . comment puis-je réduire ma feuille excel taille ? ma feuille excel ne contient que 3000 lignes alors pourquoi des cellules Vierges qui vont jusqu'à 10000e ligne ?

SQL Server 2008 & Visual Studio 2008 with BIDS

8
demandé sur Shaggy 2013-01-01 14:24:22

2 réponses

je crois que votre problème est autour de la méthode que vous utilisez pour créer le fichier. Vous avez deux solutions, et les deux devraient résoudre votre problème:

Solution #1:

vous pouvez créer un fichier Excel avec ces colonnes prédéfinies, essentiellement votre fichier de sortie vide - cela agirait comme votre'fichier modèle'. Votre flux serait alors ceci:

  1. système de fichiers tâche-copier le modèle de fichier vers la sortie ou le répertoire de travail (renommer si nécessaire)
  2. OLEDB Source à la Tâche de la Requête de votre source de données (3000)
  3. Tâche De Conversion Des Données
  4. Destination Excel Tâche - Mettre les données dans le nouveau fichier Excel

Note: Vous avez déjà les étapes 2 à 3 complètes, vous avez juste besoin de vous assurer que vous vous connectez au nouveau fichier Excel. De plus, pour clarifier les choses, l'étape 1 ne fait pas partie de la tâche de contrôle du débit.

cette façon est utile parce que vous avez toujours un blanc et régulièrement formaté Excel le fichier à copier et à travailler avec.

Solution #2:

L'autre option est d'utiliser une Tâche de Script et de créer le fichier Excel: vous pouvez également charger les données dans le fichier dans cette tâche. Cela exige une certaine compréhension de base de VB.NET ou C#. Fondamentalement, vous auriez besoin d'obtenir une bibliothèque XLS (comme NPOI). Ceci est plus compliqué, mais vous donne la meilleure fonctionnalité.

je vous recommande d'essayer la solution #1 et de voir comment cela fonctionne pour vous.

22
répondu 2013-01-04 15:31:09

Drop table SheetName ne pas supprimer la fiche au lieu de cela il a juste deletes the row . Si pour la première fois vous avez chargé des lignes 10K puis exécuté le paquet en limitant le nombre de lignes à 3K ,le fichier excel contiendra toujours ces lignes 10k vides car il conserve la feuille avec le empty spaces .

vous pouvez utiliser la tâche script pour supprimer la feuille en utilisant com obects .Mais pour cela, vous devez placer L'Excel PIA (Interop Assemply primaire) pour le rendre visible pour VSA ou bien créer un nouveau fichier excel à chaque fois que l'exécution du package

sinon comme suggéré par Nicarus utiliser File System Task pour supprimer le fichier existant et créer un nouveau fichier Excel sur toutes les exécutions .

Diagramme:

enter image description here

Système De Fichiers Tâche:

enter image description here

Utiliser les mêmes composants et la requête pour Create Table en utilisant Execute SQL task et DFT

2
répondu praveen 2013-01-07 09:56:14