Copier / coller des données de SQL Server vers Excel divise le texte en plusieurs colonnes?


14

J'ai un problème lors du collage des données de la grille de résultats de SQL Server 2005 vers une feuille de calcul Excel 2007.

J'ai une requête dans SQL Server qui renvoie 2 colonnes (une colonne numérique et une colonne de texte)

Sur un ordinateur ici, je peux heureusement copier (clic droit> copier) puis simplement cliquer avec le bouton droit et coller dans une feuille de calcul Excel. aucun problème.

Sur un autre ordinateur ici, lorsque j'essaie de coller dans Excel, il divise la colonne de texte et colle le texte en plusieurs colonnes en fonction des espaces entre les mots.

Par exemple, si l'une des lignes a ...

Collez-moi s'il vous plaît

... dedans, puis lors du collage dans Excel, il divise le texte et colle chaque mot dans une colonne distincte dans Excel.

Nous avons essayé de comparer les options de SQL Server et d'Excel avec l'ordinateur sur lequel il fonctionne correctement, mais nous ne voyons aucune différence.

Toutes les idées sont les bienvenues

Merci

Réponses:


20

Si vous avez récemment utilisé du texte pour les colonnes, il appliquera ces paramètres à l'opération de collage. Je ne me souviens pas que cela se soit produit avant Excel 2007, mais c'est possible. Je dois toujours revenir en arrière et le redéfinir sur des tabulations avant de recommencer à copier et coller.


oui vous avez raison - nous l'avons craqué - merci
Paul

Ça a marché. Merci.
Sagar Shirke

7

Avant de coller les résultats: Données → Texte dans les colonnes

  • Type de données d'origine: chèque délimité
  • Prochain
  • Délimiteurs: décocher l' espace
  • Prochain
  • terminer

Enfin collez les résultats.


1

Avez-vous essayé de remplacer les modèles de démarrage Excel sur l'ordinateur qui rencontre le problème? Il peut y avoir une macro définie qui est déclenchée par votre opération de collage. Selon l'article 924460 de la Base de connaissances Microsoft, les modèles sont stockés aux emplacements suivants:

Par défaut, les fichiers de modèles utilisateur sont stockés à l'emplacement suivant:

  • Sous Windows XP C: \ Documents and Settings \\ Application Data \ Microsoft \ Templates
  • Sous Windows Vista ou Windows 7 C: \ Users \\ AppData \ Roaming \ Microsoft \ Templates

1

J'ai constaté que si je quitte Excel, puis le redémarre et recharge ma feuille de calcul, il efface les options de texte dans les colonnes, de sorte que la pâte fonctionnera à nouveau comme prévu.

La réponse d'Hector est agréable en ce sens que vous n'avez pas à quitter Excel, mais cela fonctionne également, et est assez rapide et facile.


Je pense que certains des excellents que vous avez dans le système ont changé les options par défaut. Donc, je pense qu'au lieu de jouer avec la configuration ou la transformation des données, il est facile de tout fermer et de l'ouvrir à nouveau.
Juan Acosta

0

Si votre table contient un champ nvarchar (max), déplacez ce champ au bas de votre table. Dans le cas où le type de champ est différent de nvarchar (max), identifiez le ou les champs incriminés et utilisez cette même technique. Sauvegarde le. Resélectionnez la table en SQL. Si vous ne pouvez pas enregistrer sans modification, vous pouvez temporairement désactiver les avertissements pertinents dans TOOLS | OPTIONS. Cette méthode ne comporte aucun risque. Copiez et collez l'affichage SQL GRID avec des en-têtes vers Excel. Les données peuvent toujours présenter un retour chariot mais au moins vos données sont toutes sur la même ligne. Sélectionnez ensuite tous les enregistrements de ligne et effectuez un tri personnalisé dans la colonne ID. Tous vos enregistrements doivent maintenant être intacts et consécutifs.


0

Une situation similaire que je rencontre de temps en temps est que les lignes sont divisées en plusieurs lignes lorsque les utilisateurs ont utilisé un caractère de retour chariot / saut de ligne dans une colonne destinée aux commentaires. J'ai trouvé une solution qui fonctionne pour SQL 2012/2014 ici .

Ce n'est apparemment pas un problème dans les versions précédentes de SQL Server. Si vous ne souhaitez pas passer par le lien, voici comment résoudre le problème dans votre SQL:

REPLACE(REPLACE([YourColumnHere], CHAR(10), ''), CHAR(13), '')

0

Solution à ce problème dans Excel après avoir collé l'option de clic.

"Utiliser l'assistant d'importation de texte" -> Délimité -> Cochez la case suivante "Tab", cochez "Traitez le délimiteur consécutif comme un" -> Terminer

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.