Lorsqu’on ne dispose pas d’un véritable système de gestion de base de données, il faut parfois trouver des solutions alternatives pour stocker et exploiter des volumes importants d’informations. Dans mon cas, je génère et gère un fichier Excel contenant environ 30 000 lignes et 5 colonnes, dont 3 doivent obligatoirement être renseignées.
Cependant, manipuler un tel volume de données directement dans Excel peut vite devenir laborieux, notamment pour effectuer des recherches rapides. Pour pallier cette contrainte, j’ai opté pour une solution simple : exporter mon fichier sous forme de texte et utiliser des outils intégrés de Windows 10 pour effectuer sur ce ficchier, des recherches performantes.
Dans cet article, je vais vous montrer comment tirer parti d’un fichier texte issu d’Excel pour effectuer des recherches efficaces, sans recourir à une base de données classique.
Exporter sa feuille de données Excel
Si j'en crois la documentation Microsoft, aucune ligne de commande ne permet pas d'exporter d'un fichier Excel en mode texte. Cet export est cependant réalisable avec Powershell :
$xlCSV = 6
$Excel = New-Object -Com Excel.Application
$Excel.visible = $False
$Excel.displayalerts=$False
$WorkBook = $Excel.Workbooks.Open("C:\Users\33651\Downloads\Excellent JSON.xlsm")
$Workbook.SaveAs("C:\Users\33651\Downloads\Excellent JSON.csv",$xlCSV)
$Excel.quit()
L'intéret d'utiliser Powershell est d'avoir un script "autonome".
Une fois cet export effectué, on a véritable fichier CSV
.
Company;Headquarters;Industry
Airbnb;San Francisco, CA;Hospitality service
Alibaba;Hangzhou, Zhejiang;Ecommerce
Amazon;Seattle, WA;Conglomerate
Apple;Cupertino, CA;Technology
Dell;Round Rock, TX;Consumer Electronics
Facebook;Menlo Park, CA;Social Media
Founders Fund;San Francisco, CA;Venture Capital
Google;Mountain View, CA;Technology
Microsoft;Redmond, WA;Technology
Netflix;Los Gatos, CA;Digital Entertainment
Salesforce;San Francisco, CA;SaaS
SAS;Cary, NC;Analytics Software
SpaceX;Hawthorne, CA;Aerospace
Twitter;San Francisco, CA;Social Media
Virgin Group;London, England;Conglomerate
Désormais que nous avons ce fichier (de 27000 lignes acuellement pour le bien), nous allons effectuer des recherches à l'intérieur !
Findstr=grep ?
A tous les détracteur de Windows, que je ne soutiens pas, je dois dire qu'il y a enfin de beaux progrès sur certaines commandes. On a enfin un équivalent de grep sous linux (c'est pas trop trop). SI vous ne connaissasi ni l'une, ni l'autre des commande que je vous propose, elle vous permettent de trouver un ou plusieurs lignes d'un fichier (texte en général) qui répond aux critères que nous lui donnons. Dans notre cas, ce critère correspondra tout simplement à la chaine de caractères que vous recherchez.
Si je reprends l'exemple du fichier texte précédent, nous allon rechercher la chaine "Amazon" qui se trouve à la 4e ligne :
findstr Amazon "Excellent JSON.csv"
Je m'explique :
- Afin de faire une recherche dans un fichier texte, j'utilise la commande de windows 10 findstr.
- Comme on peux le voir dans la documentation de cette commande, le deuxieme paramètres ma chaine recherchée : Amazon
- Le troisième paramètre est le nom de fichier. J'utilise les double cotes (") qui, depuis windows 95, permettent dans un ligne de commande de placer un nom de ficihier possédant une espace. (oui, espace dans ce cas est féminin !). Ce troisième paramètre n'est ni plus ni moins que le chemin du fichier (ici dans le même répertoire donc je n'y mets que son nom) dans lequel effectuer la recherche.
Le résultat de la recherche est la ligne complète trouvée :
![]()
Par rapport à mon besoin, cette commande couvre largement la demande ! Et voujs povez essayer sur d'énormes fichiers, la réponse est instantanée !
