Depuis plus de trois décennies – pratiquement une éternité dans les années technologiques – Excel a graissé les rouages des entreprises et des aspirants individus du monde entier. Rien qu’aux États-Unis, on estime que plus de 700 000 entreprises utilisent Excel, et dans le monde, le nombre d’utilisateurs uniques d’Excel se situe à un peu plus d’un milliard, soit environ 1/8e de la population mondiale.
Cependant, avec le développement rapide des solutions de données SaaS d’entreprise pointer-cliquer sur abonnement, il devient clair que l’utilisation d’Excel au sens « traditionnel » est moins efficace qu’auparavant. Cliquer sur l’icône du bureau Excel, sélectionner « Nouveau classeur » et formater un document unique à partir d’une page vierge ou d’un modèle est juste assez d’engagement de ressources pour vous placer derrière la balle huit selon les normes de livraison de projet ultra-rapides d’aujourd’hui. La nature banale et prévisible de l’utilisation d’Excel a, pendant plus d’une décennie, demandé et reçu la même forme d’intervention vers laquelle une grande partie de la communauté technologique agitée marche constamment : l’automatisation.
Heureusement, l’automatisation de la création et de la manipulation de documents Excel standard nécessite une simple intervention de programmation. À peu près toutes les opérations que vous pouvez effectuer manuellement dans les documents Excel peuvent être effectuées par programme avec accès aux bonnes bibliothèques. Une fois ces portes ouvertes, le processus de personnalisation des documents Excel et d’intégration des données à grande échelle devient instantanément plus efficace (cette approche réduit l’élément naturel d’erreur de saisie humaine que nous attendons de la saisie manuelle des données et du formatage des feuilles de calcul). Si nous savons, par exemple, qu’une feuille de calcul de rapport mensuel ne nécessite que des informations à jour provenant d’un ensemble cohérent de sources de données, il est idéal si nous pouvons configurer ces sources pour écrire des informations directement dans le fichier sans qu’un être humain agisse comme le intermédiaire.
Nous n’avons pas besoin de chercher bien loin pour trouver des exemples de bibliothèques d’édition Excel modernes et couramment utilisées – la bibliothèque Pandas extrêmement populaire en Python, par exemple, prend en charge nativement l’édition Excel programmatique avec une variété de fonctions utiles. Étant donné que tous les langages de programmation (comme Java, par exemple) ne prennent pas en charge nativement la manipulation d’Excel comme le fait Python, l’utilisation d’une API externe est un excellent moyen de réaliser l’automatisation d’Excel. En particulier pour les applications traitant des fichiers Excel à grande échelle, les appels d’API externes peuvent fournir les bibliothèques requises pour la manipulation de fichiers Excel ainsi qu’une amélioration bienvenue de l’efficacité globale en déchargeant la puissance de traitement de cette tâche sur un serveur distinct.
Manifestation
Dans le reste de cet article, je vais démontrer plusieurs solutions d’API gratuites qui sont conçues collectivement pour créer et modifier par programmation des fichiers Excel en toute sécurité et facilement. Tous ne nécessitent que quelques lignes de code Java complémentaire prêt à l’emploi (fourni ci-dessous) ainsi qu’une clé API gratuite pour terminer votre appel API. Les solutions d’API présentées dans cet article incluent les éléments suivants :
- Commencer à modifier un document: Cette API lance le téléchargement du document pour commencer les opérations d’édition sur les documents Excel existants, renvoyant une URL d’édition sécurisée (qui sera mise en cache pendant 30 minutes et ne peut pas être utilisée pour accéder directement au document).
- Créer une feuille de calcul Excel XLSX vierge: cette API renvoie l’encodage d’un fichier vierge au format Excel XLSX, ainsi que sa propre URL d’édition.
- Insérer une nouvelle feuille de calcul dans une feuille de calcul Excel XLSX: cette API crée et insère une nouvelle feuille de calcul à l’aide de l’URL d’édition temporaire à partir d’un fichier XLSX existant ou généré par programme.
- Définir et mettre à jour le contenu des cellules dans une feuille de calcul Excel XLSX, feuille de calcul par identifiant de cellule: cette API permet de placer et de mettre en forme le contenu dans des cellules spécifiées d’une feuille de calcul Excel à l’aide d’une URL d’édition temporaire.
- Terminer la modification d’un document: cette API finalise l’édition du document en traitant l’URL d’édition temporaire et en fournissant en retour l’encodage du fichier Excel final édité.
Pour résumer ce qui précède, vous pouvez modifier en toute sécurité des documents Excel existants par programmation à l’aide de l’URL d’édition temporaire générée via l’appel d’API « Commencer à modifier un document ». Pour créer un nouveau document Excel à partir de zéro, vous pouvez appeler l’API « Créer une feuille de calcul Excel XLSX vierge », qui génère également sa propre version d’une URL d’édition temporaire.
Une fois qu’une URL d’édition temporaire est générée dans l’un ou l’autre scénario, vous pouvez ensuite insérer de nouvelles feuilles de calcul dans votre document ou écrire des informations dans des cellules spécifiques en transmettant l’URL via les paramètres de demande d’entrée de chaque API.
Pour les documents Excel préexistants et générés par programme, une fois le processus d’édition terminé, l’URL d’édition temporaire doit être traitée à l’étape « Terminer l’édition » pour renvoyer l’encodage de fichier XLSX mis à jour. Cette dernière étape est nécessaire pour assurer la sécurité de votre document ; l’URL d’édition temporaire ne peut pas être utilisée pour accéder directement au document et elle ne restera en cache que pendant 30 minutes.
Ci-dessous, je fournirai du code pour structurer chaque appel d’API individuel en Java. Pour commencer, cependant, vous devrez d’abord suivre quelques étapes pour installer le SDK Java.
Pour installer avec Maven, ajoutez d’abord une référence au référentiel dans poml.xml :
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
Et puis ajoutez une référence à la dépendance dans pom.xml :
<dependencies>
<dependency>
<groupId>com.github.Cloudmersive</groupId>
<artifactId>Cloudmersive.APIClient.Java</artifactId>
<version>v4.25</version>
</dependency>
</dependencies>
Alternativement, pour installer avec Gradle, ajoutez-le à votre racine build.gradle à la fin des référentiels :
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Et puis ajoutez la dépendance dans build.gradle :
dependencies {
implementation 'com.github.Cloudmersive:Cloudmersive.APIClient.Java:v4.25'
}
Une fois l’installation terminée, vous pouvez vous concentrer sur la structuration de chaque appel d’API individuel.
1. Commencer à éditer un document
Pour commencer le processus de téléchargement et de modification d’un document Excel existant en fonction de son chemin de fichier, appelez d’abord l’API « Begin Editing » à l’aide des exemples de code suivants. Cela renverra une URL d’édition temporaire :
// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.EditDocumentApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
EditDocumentApi apiInstance = new EditDocumentApi();
File inputFile = new File("/path/to/inputfile"); // File | Input file to perform the operation on.
try {
String result = apiInstance.editDocumentBeginEditing(inputFile);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling EditDocumentApi#editDocumentBeginEditing");
e.printStackTrace();
}
2. Créer une feuille de calcul Excel XLSX vierge
Pour commencer votre processus d’édition par programmation avec un tout nouveau fichier, utilisez plutôt le code suivant. Cela générera automatiquement un fichier XLSX vierge et renverra une URL temporaire :
// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.EditDocumentApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
EditDocumentApi apiInstance = new EditDocumentApi();
CreateBlankSpreadsheetRequest input = new CreateBlankSpreadsheetRequest(); // CreateBlankSpreadsheetRequest | Document input request
try {
CreateBlankSpreadsheetResponse result = apiInstance.editDocumentXlsxCreateBlankSpreadsheet(input);
System.out.println(result);
} catch (ApiException e) {
System.err.println("Exception when calling EditDocumentApi#editDocumentXlsxCreateBlankSpreadsheet");
e.printStackTrace();
}
3. Insérer une nouvelle feuille de calcul dans une feuille de calcul Excel
Pour insérer une nouvelle feuille de calcul dans votre document Excel, utilisez le code ci-dessous pour effectuer votre appel API. Vous devrez transmettre l’URL d’édition temporaire via le InputFileUrl
request, puis spécifiez le chemin et le nom de votre nouvelle feuille de calcul :
// Import classes:
//import com.cloudmersive.client.invoker.ApiClient;
//import com.cloudmersive.client.invoker.ApiException;
//import com.cloudmersive.client.invoker.Configuration;
//import com.cloudmersive.client.invoker.auth.*;
//import com.cloudmersive.client.EditDocumentApi;
ApiClient defaultClient = Configuration.getDefaultApiClient();
// Configure API key authorization: Apikey
ApiKeyAuth Apikey = (ApiKeyAuth) defaultClient.getAuthentication("Apikey");
Apikey.setApiKey("YOUR API KEY");
// Uncomment the following line to set a prefix for the API key, e.g. "Token" (defaults to null)
//Apikey.setApiKeyPrefix("Token");
EditDocumentApi apiInstance = new EditDocumentApi();
InsertXlsxWorksheetRequest input = new InsertXlsxWorksheetRequest(); // InsertXlsxWorksheetRequest | Document input request
try {
InsertXlsxWorksheetResponse result =...