80 votes

Excel peut-il interpréter les URL de mon CSV comme des hyperliens ?

Excel peut-il interpréter les URL de mon CSV comme des hyperliens ? Si oui, comment ?

0 votes

Cette réponse est également utile : stackoverflow.com/questions/7572268/

95voto

Dave Points 1720

Vous pouvez en fait faire cela et faire en sorte qu'Excel affiche un lien cliquable. Utilisez ce format dans le fichier CSV :

=HYPERLINK("URL")

Ainsi, le CSV ressemblerait à :

1,23.4,=HYPERLINK("http://www.google.com")

Cependant, j'essaie de faire fonctionner correctement certains liens contenant des virgules et il semble qu'il n'y ait pas de moyen de les échapper tout en permettant à Excel de rendre le lien cliquable.

Quelqu'un sait-il comment ?

4 votes

Les solutions proposées, ainsi que les ajouts de Jim et Hemans, fonctionnent bien. Cependant, la formule est différente pour les différentes langues (par exemple =LIEN_HYPERTEXTE("...") pour le français. En fait, cette solution ne fonctionne que dans Excel anglais (ou toute autre langue).

4 votes

Vous pouvez entourer tout champ CSV de "guillemets", puis ajouter des virgules et des guillemets (en utilisant "") : field1,"field2","field3,with ""commas""" doit être interprété par les lecteurs CSV valides comme trois champs. C'est une bonne idée d'utiliser une bibliothèque existante de lecteur/écriture CSV pour gérer ces cas limites.

0 votes

Cela semble fonctionner pour LibreOffice 5.1.6 également.

18voto

P Hemans Points 694

Avec l'intégration de la fonction de lien hypertexte, vous devez faire attention aux citations. Vous trouverez ci-dessous un exemple de fichier CSV créé qui répertorie une erreur et un lien pour afficher la documentation sur la méthode qui a échoué. (Un peu ésotérique mais c'est ce sur quoi je travaille)

"Details","Failing Method (click to view)"
"Method failed","=HYPERLINK(""http://some_url_with_documentation"",""Method_name"")"

0 votes

Les arguments de HYPERLINK() doivent être séparés par un point-virgule, et non par une virgule, du moins dans ma version (allemande) d'Excel 2007.

2 votes

@cmarqu Je pense que cela dépend du séparateur de liste utilisé par votre système. La locale allemande utilise par défaut ; comme séparateur de liste, et celui-ci doit être utilisé comme séparateur dans les fichiers CSV (ironique étant donné l'acronyme "Comma-Separated Values") et comme séparateur d'arguments dans les formules Excel. Pour les autres langues, comme l'anglais américain, la virgule est utilisée par défaut. En gros, vous devez utiliser le même séparateur que celui que vous utilisez pour séparer les cellules dans le fichier CSV. C'est ce que j'ai trouvé en testant à la fois la virgule et le point-virgule dans plusieurs versions d'Excel avec différents paramètres.

15voto

arbit Points 161

J'ai lu toutes ces réponses et quelques autres, mais il m'a quand même fallu du temps pour trouver une solution dans Excel 2014.

Le résultat dans le csv devrait ressembler à ceci

"=HYPERLINK(""http://www.Google.com"",""Google"")"

Note : Si vous essayez de définir ce paramètre à partir du serveur MSSQL, alors

'"=HYPERLINK(""http://www.' + baseurl + '.com"",""' + baseurl + '"")"' AS url

8voto

Jim Points 51

Vous pouvez coder vos virgules à l'intérieur de l'URL afin que celle-ci ne soit pas répartie sur plusieurs cellules.

Il suffit de remplacer les virgules par %2c

http://www.xyz.com/file,comma.pdf

devient

\=hyperlink("http://www.xyz.com/file%2ccomma.pdf")

0 votes

Merci pour la réponse, ça marche vraiment. J'ai essayé de nombreuses solutions mais aucune n'a fonctionné.

5voto

dlras2 Points 3607

Oui, mais il n'est pas possible de les lier automatiquement. Les fichiers CSV sont juste des fichiers texte - ce qui les ouvre et les lit est responsable de vous permettre de cliquer sur le lien.


Quant à la façon dont Excel semble traiter les fichiers CSV, tout ce qui se trouve entre des virgules est interprété comme s'il avait déjà été tapé dans la cellule. Par conséquent, le fichier CSV contenant ="http://google.com",=A1 s'affichera comme http://google.com,http://google.com dans Excel. Il est important de noter, cependant, que les hyperliens dans Excel sont des métadonnées, et non le résultat de quoi que ce soit dans la cellule réelle (par exemple, une cellule avec un hyperlien vers Google contient encore http://google.com pas <a>http://google.com</a> ou quoi que ce soit de ce genre).

Comme c'est le cas, et que toutes les métadonnées sont perdues lors de la conversion en CSV, il est impossible d'indiquer à Excel que vous souhaitez qu'un élément soit hyperlié en modifiant simplement la valeur de la cellule. Normalement, Excel interprète votre saisie lorsque vous appuyez sur la touche "Entrée" et crée alors des liens URL, mais comme les données CSV ne sont pas saisies, mais existent déjà, cela ne se produit pas.

Le mieux est d'écrire une sorte d'addon ou de macro qui s'exécute lorsque vous ouvrez un CSV et qui analyse chaque cellule et établit un lien hypertexte si elle correspond à un format URL.

2 votes

Ah, c'est une distinction importante. Je ne pense pas que ce soit possible, non.

2 votes

Ce n'est pas la réponse, voir ci-dessous. Vous pouvez utiliser =HYPERLINK("URL")

1 votes

Ce n'est pas correct, vous pouvez faire "=HYPERLINK(""http://www.google.com"")" comme expliqué ci-dessous, il vous suffit d'avoir tous ces devis.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X