4 votes

Les résultats copiés depuis SSMS se répartissent sur plusieurs colonnes lorsqu'ils sont collés dans Excel.

SSMS 2008 -> Excel 2003

Cela ne se produit pas tout le temps, mais parfois, lorsque je "copie avec les en-têtes" à partir de sql server management studio, les résultats dans Excel ont l'air d'avoir utilisé l'assistant "text to columns" avec des "espaces" et des "parenthèses" comme délimiteurs, ce qui signifie que les résultats sont répartis de manière irrégulière sur les colonnes, ce qui les rend inutiles.

J'ai regardé dans les options de la requête 'grid output' mais je ne vois rien qui puisse causer ce problème.

(je ne suis pas sûr que cela doive être sur superuser ?)

2voto

adolf garlic Points 171

Il conserve les paramètres "texte en colonnes" des versions précédentes.

Solution :
Trouver une cellule vide
mettre asdf
dans cette cellule

Données|Texte en colonnes
délimité
décochez toutes les options
finir

2voto

beatak Points 1176

Ce problème peut être causé par la fonction "Texte en colonne" d'Excel. Cette fonction permet de diviser une colonne unique en plusieurs colonnes en fonction du délimiteur choisi. Lorsque vous utilisez cette fonction, Excel pense qu'elle est toujours active et peut affecter votre prochaine opération de copier/coller.

Pour résoudre ce problème, allez dans Données > Texte vers colonne et sélectionnez un autre délimiteur (autre qu'un espace), comme une virgule ou une tabulation. Puis copiez et collez. Cela devrait résoudre le problème.

Related Point d'interrogation bizarre dans Excel après un copier-coller

0voto

Tesfa TWL Points 1

Il s'agit d'une erreur courante dans ce type de processus : copier depuis SSMS et coller vers Excel. Ce problème se produit lorsque l'une des colonnes du résultat de SSMS comporte un point (.) et qu'elle est traitée comme une ligne distincte, ce qui peut donner lieu à une colonne/ligne désordonnée dans Excel. Par exemple : 'Heineken Bottled Beer .33 Liter'. Ce point devant le 33 peut perturber le processus de collage pour les mêmes raisons que celles mentionnées ci-dessus.

Voici comment l'éviter sans aucun code.

  1. Copiez toutes les colonnes qui n'ont pas le point (.) dans ses enregistrements du résultat.
  2. Collez-la dans Excel.
  3. Faites la 1ère étape s'il y a plus de colonnes après la colonne qui a le point (.).
  4. Enfin, copiez et collez la colonne qui a le point (.) à la fin*.
    • Si le collage direct dans Excel pour cette colonne ne fonctionne pas, essayez de la coller dans une nouvelle feuille d'Excel, puis copiez-la dans l'endroit où vous voulez la coller.

J'espère que cela vous aidera.

0voto

Andrei Rantsevich Points 136

Je développe le module complémentaire SSMSBooad pour SSMS ( www.ssmsboost.com ) et nous y avons abordé ce sujet : vous pouvez utiliser "Copier les données en tant que Spreadsheed XML (Excel)" qui utilise le format natif du presse-papiers d'Excel pour transmettre les en-têtes et les informations sur le type de données à Excel. J'espère que cela vous aidera.

Mise à jour : récemment, nous avons créé une vidéo tutorielle sur ce sujet :

https://www.youtube.com/watch?v=waDCukeXeLU

0voto

user986416 Points 1

Vous pouvez éventuellement avoir des doubles crochets, c'est-à-dire [[Ma colonne]] dans votre code. J'ai trouvé et résolu ce problème pour moi.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X