Vous avez des dossiers de classeurs Excel qui doivent alimenter un service web SOAP, un partenaire EDI, une soumission réglementaire ou une intégration ERP — et le système récepteur parle XML, pas XLSX. Ouvrir chaque fichier dans Excel et l'enregistrer en XML à la main cesse de fonctionner dès le deuxième classeur, et l'export XML intégré d'Excel ignore les exigences de schéma que le système en aval vérifie réellement. Total Excel Converter X convertit les fichiers XLS et XLSX en XML bien formé depuis la ligne de commande, en lot, sans interface graphique et sans installation de Microsoft Excel. Installez-le sur un serveur Windows, appelez-le depuis un script ou via ActiveX, et laissez-le fonctionner de manière autonome.
*.xlsx) et le convertisseur traite chaque classeur correspondant en une seule exécution
(30 jours, sans e-mail)
(licence serveur, perpétuelle)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Excel est une grille. Lignes et colonnes contiennent des valeurs, et la signification de chaque colonne vit dans une ligne d'en-tête que les humains lisent. Le format est excellent pour les analystes, terrible pour l'intégration système. Les services SOAP, passerelles EDI, portails réglementaires, interfaces bancaires et messages de santé HL7 ne parsent pas le XLSX. Ils attendent du XML avec des noms d'éléments explicites, une imbrication définie et des règles d'échappement prévisibles.
XML est hiérarchique et auto-décrivant. Chaque valeur porte un nom d'élément, le document se valide contre un schéma, et toute plateforme — Linux, Java, .NET, mainframes IBM — peut le parser sans bibliothèques propriétaires. Lorsque les données Excel doivent entrer dans ce monde, elles doivent d'abord devenir du XML. Total Excel Converter X écrit du XML valide où chaque ligne Excel se transforme en nœud d'enregistrement, la ligne d'en-tête fournit les noms de champs, et les caractères spéciaux sont échappés pour que la sortie passe proprement à travers tout parser XML.
| Excel (XLS/XLSX) | XML | |
|---|---|---|
| Forme | Grille bidimensionnelle | Arbre hiérarchique |
| Noms de champs | Implicites (ligne d'en-tête) | Explicites sur chaque enregistrement |
| Validation | Aucune au niveau du fichier | Schéma (XSD, DTD) |
| Consommateurs | Humains, outils compatibles Excel | SOAP, EDI, ERP, HL7, régulateurs |
| Multiplateforme | Meilleur sur Windows + Office | Universel — tout langage et OS |
Téléchargez l'installateur depuis le lien ci-dessus et lancez-le sur votre serveur ou poste de travail Windows. L'installation prend moins d'une minute. Aucune installation de Microsoft Excel n'est requise — le convertisseur lit XLS et XLSX directement avec son propre parser, y compris les formules, styles et classeurs multi-feuilles.
Ouvrez cmd.exe ou PowerShell. L'exécutable du convertisseur est XLSConverter.exe, situé dans le dossier d'installation (généralement C:\Program Files\CoolUtils\TotalExcelConverterX\). Ajoutez-le à votre PATH système ou utilisez le chemin complet dans vos commandes.
La commande la plus simple convertit tous les fichiers Excel d'un dossier en XML :
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML
Cela traite chaque fichier .xlsx dans C:\Sheets\ et enregistre les fichiers XML résultants dans C:\Output\. Chaque classeur produit un fichier XML avec le même nom de base. Chaque ligne de la source devient un élément <Row>, et chaque cellule devient un élément enfant nommé d'après l'en-tête de colonne correspondant.
Contrôlez la sortie XML avec des indicateurs supplémentaires :
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML -Encoding UTF-8 -FirstRowAsHeader true -log C:\Logs\xls2xml.log
-Encoding UTF-8 — définir l'encodage XML (UTF-8, UTF-16, Windows-1252, ISO-8859-1)-FirstRowAsHeader true — utiliser la ligne 1 comme noms d'éléments au lieu des génériques Column1, Column2-Sheet "Invoices" — convertir uniquement la feuille de calcul nommée au lieu de chaque feuille-log C:\Logs\xls2xml.log — écrire un journal de conversion pour vérificationEnregistrez votre commande dans un fichier .bat et planifiez-la avec le Planificateur de tâches Windows :
@echo off "C:\Program Files\CoolUtils\TotalExcelConverterX\XLSConverter.exe" C:\Incoming\*.xlsx C:\Archive\XML\ -c XML -Encoding UTF-8 -FirstRowAsHeader true -log C:\Logs\xls2xml.log
Cela exécute la conversion chaque nuit (ou à l'intervalle que vous définissez) et écrit un fichier journal pour que vous puissiez vérifier les résultats. Déposez de nouveaux classeurs dans C:\Incoming\ pendant la journée et le pipeline d'intégration les récupère automatiquement.
Total Excel Converter X inclut une interface ActiveX complète. Vous pouvez appeler le convertisseur depuis tout environnement compatible COM — .NET, VBScript, PHP, Python, Ruby ou ASP. Cela vous permet d'intégrer la conversion Excel vers XML dans votre propre application web, courtier d'intégration ou flux de travail documentaire sans passer par un processus en ligne de commande.
Exemple (C#/.NET) :
XLSConverterX Cnv = new XLSConverterX();
Cnv.Convert("C:\\Sheets\\invoices.xlsx", "C:\\Output\\invoices.xml", "-c XML -Encoding UTF-8 -FirstRowAsHeader true -log c:\\Logs\\xls.log");
Exemple (PHP) :
$c = new COM("XLSConverter.XLSConverterX");
$c->convert("C:\\Sheets\\invoices.xlsx", "C:\\Output\\invoices.xml", "-c XML -Encoding UTF-8 -FirstRowAsHeader true -log c:\\Logs\\xls.log");
Le même appel fonctionne depuis ASP.NET, VBScript, Python, Ruby, Perl et JavaScript (Windows Script Host). Votre couche d'intégration peut accepter des fichiers Excel téléchargés, les convertir en XML en mémoire et transférer la charge utile XML directement à un point de terminaison SOAP ou à une file d'attente ERP.
| Fonctionnalité | Convertisseurs en ligne | Total Excel Converter X |
|---|---|---|
| Traitement par lots | Un fichier à la fois | Fichiers illimités par lot |
| Confidentialité des données | Classeurs envoyés sur un serveur tiers | Les fichiers ne quittent jamais votre machine |
| Contrôle de l'encodage | UTF-8 uniquement, souvent cassé | UTF-8, UTF-16, Windows-1252, ISO-8859-1 |
| Échappement caractères spéciaux | Incohérent, souvent XML invalide | Échappement complet pour &, <, >, ", caractères de contrôle |
| Classeurs multi-feuilles | Première feuille uniquement | Toutes les feuilles ou feuille nommée |
| Automatisation | Manuelle uniquement | Ligne de commande, .bat, Planificateur de tâches, ActiveX |
| Déploiement serveur | Impossible | Conçu pour les serveurs, sans interface graphique |
| Nécessite Excel installé | N/A | Non |
| Nécessite Internet | Oui | Non |
Le convertisseur lit XLS et XLSX directement avec son propre parser. Vous n'avez pas besoin de Microsoft Office, LibreOffice ou de toute autre application de feuille de calcul installée sur le serveur. Cela évite les coûts de licence et l'instabilité bien connue de l'automatisation d'Excel dans des scénarios sans surveillance.
Total Excel Converter X est conçu pour un usage sans surveillance. Pas de fenêtres d'interface graphique, pas de boîtes de dialogue, pas de demandes de confirmation. Il fonctionne silencieusement depuis la ligne de commande ou dans le cadre d'un service — exactement ce dont un serveur d'intégration de production a besoin.
La sortie est du XML bien formé. Les esperluettes deviennent &, les chevrons deviennent < et >, les guillemets dans les attributs sont échappés, et les caractères de contrôle parasites sont supprimés. Le XML passe à travers tout parser conforme aux standards sans s'étouffer sur un nom de client qui contiendrait une esperluette.
Le même outil en ligne de commande convertit Excel en PDF, DOC, HTML, CSV, JSON, ODS, TXT et bien d'autres formats. Une seule installation couvre tous vos besoins de conversion de feuilles de calcul. Changez -c XML en -c JSON et vous obtenez une sortie JSON avec les mêmes fonctionnalités de traitement par lots et d'automatisation.
(30 jours, sans e-mail ni carte bancaire)
(licence serveur, perpétuelle)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Notre partenaire d'expédition n'accepte les bons de commande qu'en XML via SOAP, mais l'équipe opérations les construit dans Excel. Total Excel Converter X s'exécute comme un .bat planifié sur le serveur d'intégration et transforme le classeur de commandes quotidien en XML en moins de trois secondes. L'échappement gère les caractères spéciaux dans les noms de clients qui cassaient notre parser interne précédent. Remplacement direct d'un script VBA maison que personne ne voulait maintenir."
Andreas Vogt Integration Engineer, Logistik AG
"Nous échangeons des documents EDI avec environ quarante partenaires de la grande distribution, et un tiers d'entre eux veulent des enveloppes XML au lieu de X12 ou EDIFACT. Le convertisseur se trouve entre notre comptoir de commandes basé sur tableur et la passerelle EDI. Le mappage par ligne d'en-tête signifie que le schéma XML de chaque partenaire s'aligne avec les noms de colonnes que nous utilisons déjà. L'encodage est défini par partenaire via la ligne de commande. Pas de surprises en production."
Priya Subramanian EDI Specialist, Wholesale Distribution
"Nous déposons des déclarations réglementaires à la banque centrale en XML à un rythme hebdomadaire. Les données source sont rapprochées dans Excel par l'équipe finance puis doivent devenir une charge utile XML strictement encodée. La sortie UTF-8 du convertisseur et l'échappement propre des esperluettes passent le validateur du régulateur dès le premier essai. Nous post-traitons toujours la sortie via XSLT pour s'adapter au schéma cible exact, mais l'étape de conversion elle-même est fiable et rapide."
Marc Lefevre Regulatory Reporting Lead, Banque Mutuelle
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML. Cela convertit chaque classeur Excel du dossier source en XML. Ajoutez des indicateurs comme -Encoding UTF-8, -FirstRowAsHeader true ou -log pour contrôler la structure et l'encodage de sortie.-FirstRowAsHeader true et le convertisseur utilise chaque en-tête de colonne comme nom d'élément pour ce champ, donc une colonne CustomerName produit des éléments <CustomerName>. Sans cet indicateur, le convertisseur retombe sur des balises génériques Column1, Column2. Les nœuds de ligne sont par défaut <Row> ; cela vous donne une structure prévisible et régulière qui se mappe proprement à la plupart des schémas consommateurs.-Encoding. UTF-8 est le défaut sûr pour SOAP, EDI et la plupart des intégrations modernes. Utilisez UTF-16 lorsqu'un système en aval le requiert spécifiquement, ou une page de codes Windows lors de l'alimentation d'un partenaire ancien qui attend du XML mono-octet.&, les chevrons deviennent < et >, les guillemets doubles dans les valeurs d'attribut deviennent ", et les caractères de contrôle parasites qui casseraient un parser XML 1.0 sont supprimés. La sortie se valide contre tout parser conforme aux standards sans nettoyage manuel.-Sheet "Invoices" pour convertir uniquement une feuille de calcul nommée, ou -Sheet 1 pour sélectionner par index commençant à zéro. Les feuilles cachées et feuilles de graphiques sont ignorées.XLSConverter.XLSConverterX). Vous pouvez l'appeler depuis .NET, PHP, Python, VBScript, ASP, Ruby, Perl et tout autre environnement compatible COM pour convertir les téléchargements Excel en XML en temps réel et transférer le résultat vers un point de terminaison SOAP ou une file d'attente de messages.
string src = @"C:\test\Source.xlsx";
string dest = @"C:\test\Dest.pdf";
var cnv = new ExcelConverterX();
cnv.Convert(src, dest, "-cPDF -log c:\\test\\Excel.log");
if (!string.IsNullOrEmpty(cnv.ErrorMessage))
throw new Exception(cnv.ErrorMessage);
public static class Function1
{
[FunctionName("Function1")]
public static async Task Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
{
StringBuilder sbLogs = new StringBuilder();
sbLogs.AppendLine("started...");
try
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
var assemblyDirectoryPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
assemblyDirectoryPath = assemblyDirectoryPath.Substring(0, assemblyDirectoryPath.Length - 4);
var executablePath = $@"{assemblyDirectoryPath}\Converter\ExcelConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.xlsx";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(srcPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & source files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{srcPath} {outPath}";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
while(!File.Exists(outPath) && sleepCounter > 0)
{
System.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("sleep...");
sleepCounter--;
}
if (File.Exists(outPath))
sbLogs.AppendLine("Conversion complete successfully.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("ExcelConverter.ExcelConverterX")
C.Convert "c:\test\source.xlsx", "c:\test\dest.pdf", "-cPDF -log c:\test\Excel.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("ExcelConverter.ExcelConverterX")
Response.Clear
Response.AddHeader "Content-Type", "binary/octet-stream"
Response.AddHeader "Content-Disposition", "attachment; filename=test.pdf"
Response.BinaryWrite C.ConvertToStream("C:\www\ASP\Source.xlsx", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
$src="C:\\test\\test.xlsx";
$dest="C:\\test\\test.csv";
if (file_exists($dest)) unlink($dest);
$c= new COM("ExcelConverter.ExcelConverterX");
$c->convert($src,$dest, "-c csv -log c:\\test\\xls.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('ExcelConverter.ExcelConverterX')
src = "C:\\test\\test.xlsx"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-c PDF -log c:\\test\\Excel.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("ExcelConverter.ExcelConverterX")
src = "C:\\test\\test.xlsx"
dest = "C:\\test\\test.pdf"
c.convert(src, dest, "-c PDF -log c:\\test\\Excel.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('ExcelConverter.ExcelConverterX');
c.Convert('c:\test\source.xlsx', 'c:\test\dest.pdf', '-cPDF -log c:\test\Excel.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("ExcelConverter.ExcelConverterX");
c.Convert("C:\\test\\source.xlsx", "C:\\test\\dest.pdf", "-c PDF");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.xlsx"; my $dest = "C:\\test\\test.csv"; my $c = CreateObject Win32::OLE 'ExcelConverter.ExcelConverterX'; $c->convert($src, $dest, "-c csv -log c:\\test\\xls.log"); print $c->ErrorMessage if -e $dest;
Téléchargez la version d'essai gratuite et convertissez vos fichiers en quelques minutes.
Aucune carte de crédit ou email requis.