2017-10-06 5 views
0

J'ai essayé de googler pour obtenir une réponse, mais je n'ai pas eu de chance. Ce que je dois faire est d'écrire dans un fichier csv qui a une ligne d'en-tête double. Les colonnes dont j'ai besoin comme en-têtes sont dans la rangée 2 et je peux les définir en utilisant 'Header rows to skip'. Cependant, je dois commencer à écrire des données à la ligne 3 et cela ne se produit pas actuellement. Qu'est-ce qui se passe, c'est que l'en-tête de la ligne 1 est en cours de suppression. Tout le reste est bien avec le paquet.SSIS Exporter au format CSV mais commencer à écrire à la ligne 3

Des idées?

+0

Ma première pensée a été pour tromper la connexion du fichier plat à utiliser '{CR} {LF} {CR} {LF}' comme séparateur de ligne d'en-tête, mais Je ne pouvais pas le faire fonctionner. – Filburt

+0

Ouais c'est un problème - mon autre pensée est d'ajouter un script pour remplacer la ligne d'en-tête avec les deux premières lignes du modèle, mais il semble un peu maladroit. – bhs

Répondre

0

Vous pouvez tromper votre cible de fichier plat dans la production de la sortie désirée si vous pouvez le faire sans le confort de créer automatiquement les noms d'en-tête de la colonne de métadonnées de pipeline:

sur votre connexion de fichier plat, décochez l'option " les noms de colonnes dans la première rangée de données »

Ouvrez votre fichier plat cible « Advanced Editor » et passez à l'onglet Component Properties.

Trouver la propriété Header sous Custom Properties et modifier le texte pour contenir les données d'en-tête souhaitées se terminant par \r\n\r\n pour produire la ligne blanche souhaitée entre votre ligne de tête et vos données.

Réglage Header à

column1;column2\r\n\r\n` 

votre fichier résultant devrait ressembler à ceci:

column1;column2CRLF
CRLF
val11;val12CRLF
val21,val22CRLF