Vous avez des dossiers de classeurs Excel qui doivent vivre dans Microsoft Access — pour les requêtes SQL, les jointures entre tables, l'indexation ou alimenter une base de données de reporting. Ouvrir chaque XLSX dans Access et parcourir l'assistant d'import ne passe pas l'échelle au-delà de deux ou trois fichiers. Total Excel Converter X convertit les fichiers XLS et XLSX en DBF (le format dBase IV qu'Access importe nativement) depuis la ligne de commande, en lot, sans interface graphique et sans installation de Microsoft Office. 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 fichier 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 un tableur. Chaque feuille de calcul est une grille plate — lignes et colonnes, avec des formules et de la mise en forme superposées par-dessus. Excel gère jusqu'à 1 048 576 lignes par feuille, mais il n'a pas de jointures natives, pas de recherches indexées entre fichiers et pas de modèle de transaction partagé. Deux analystes éditant le même XLSX produisent deux copies divergentes. Faire un rapport sur des données qui vivent à travers trente classeurs signifie écrire des chaînes RECHERCHEV qui se cassent dès qu'une colonne se décale.
Access (et toute base de données qui consomme du DBF, y compris FoxPro, OpenOffice Base et la plupart des outils BI) est conçu pour les données relationnelles. Les tables ont des champs typés, des clés primaires et des index. Les requêtes utilisent SQL : jointures, agrégations, filtres, sous-requêtes. Une seule base Access peut contenir des dizaines de millions de lignes à travers plusieurs tables liées et les servir via des formulaires et des rapports. Lorsque les données Excel doivent piloter ce type d'analyse, elles doivent d'abord atterrir dans une table de base de données — et DBF est le format qu'Access importe sans friction de conversion.
| Excel | Access / DBF | |
|---|---|---|
| Structure | Grille plate par feuille | Champs typés, index, relations |
| Interrogation | Formules, RECHERCHEV | SQL avec jointures et agrégations |
| Échelle | 1 M lignes par feuille, lent au-delà de 100K | Dizaines de millions de lignes par table |
| Concurrence | Un éditeur à la fois | Multi-utilisateur avec verrouillage de ligne |
| Flux de travail | Analyse ad hoc | Reporting, ETL, pipelines BI |
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 Office n'est requise — le convertisseur analyse XLS et XLSX directement avec son propre moteur, y compris les formules, dates, précision numérique et chaînes Unicode.
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 DBF :
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF
Cela traite chaque fichier .xlsx dans C:\Books\ et enregistre les tables DBF résultantes dans C:\Output\. Chaque classeur produit un DBF avec le même nom de base, prêt à être glissé dans Access via Données externes → Fichier dBase.
Contrôlez comment les colonnes deviennent des champs DBF avec des indicateurs supplémentaires :
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF -Sheet Sheet1 -FirstRowHeader 1 -log C:\Logs\xls2dbf.log
-Sheet Sheet1 — sélectionner une feuille de calcul spécifique par nom (ou utiliser un index)-FirstRowHeader 1 — traiter la ligne 1 comme noms de champs ; le convertisseur les nettoie en identifiants DBF valides-Range A1:G500 — restreindre la conversion à une plage de cellules spécifique-log C:\Logs\xls2dbf.log — écrire un journal de conversion listant chaque fichier d'entrée, fichier de sortie, nombre de lignes et tout avertissement de troncature de champEnregistrez 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\DBF\ -c DBF -FirstRowHeader 1 -log C:\Logs\xls2dbf.log
Exécutez-le chaque nuit, ou après qu'une équipe financière dépose son classeur quotidien dans le dossier entrant. Les fichiers DBF sont ensuite liés dans Access via ODBC ou importés comme tables natives, et le reste du pipeline de reporting s'exécute contre une vraie base de données au lieu d'un enchevêtrement de feuilles de calcul.
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 DBF dans votre propre service ETL, portail intranet ou application d'ingestion de données sans passer par un processus en ligne de commande.
Exemple (C#/.NET) :
XLSConverterX Cnv = new XLSConverterX();
Cnv.Convert("C:\\Books\\sales.xlsx", "C:\\Output\\sales.dbf", "-c DBF -FirstRowHeader 1 -log c:\\Logs\\xls.log");
Exemple (PHP) :
$c = new COM("XLSConverter.XLSConverterX");
$c->convert("C:\\Books\\sales.xlsx", "C:\\Output\\sales.dbf", "-c DBF -FirstRowHeader 1 -log c:\\Logs\\xls.log");
Le même appel fonctionne depuis ASP.NET, VBScript, Python, Ruby, Perl et JavaScript (Windows Script Host). Votre application peut accepter des fichiers XLSX téléchargés depuis un formulaire web, les convertir en DBF et lier le résultat dans Access ou le charger directement dans une table de staging SQL Server.
| Fonctionnalité | Convertisseurs en ligne | Total Excel Converter X |
|---|---|---|
| Traitement par lots | Un fichier à la fois | Fichiers illimités par lot |
| Confidentialité des fichiers | Classeurs envoyés sur un serveur tiers | Les fichiers ne quittent jamais votre machine |
| Détection des types de champs | Tout devient Caractère | Numérique, Date, Logique, Caractère infléchis |
| Sélection de feuille | Première feuille uniquement | Toute feuille par nom ou index |
| Limite de lignes | Souvent plafonnée à 10K-50K lignes | Aucun plafond artificiel |
| 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 |
Le convertisseur lit XLS et XLSX directement et écrit les tables DBF sans Microsoft Excel, LibreOffice ou toute autre application de feuille de calcul installée. Cela évite les licences Office par serveur et l'instabilité bien connue de l'automatisation d'Excel dans des scénarios sans surveillance.
Les nombres restent numériques, les dates restent des champs Date, les indicateurs vrai/faux deviennent Logiques, le texte devient Caractère avec une largeur appropriée. Access importe le résultat comme une table correctement typée que vous pouvez indexer, joindre et interroger immédiatement — sans étape de conversion post-import.
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 hôte ETL ou un serveur d'ingestion de données a besoin.
Le même outil en ligne de commande convertit Excel en CSV, JSON, XML, SQL, PDF, HTML, ODS et bien d'autres formats. Une seule installation couvre votre pipeline complet Excel-vers-base-de-données et Excel-vers-document. Changez -c DBF en -c SQL et vous obtenez un script d'instructions INSERT prêt à charger dans MySQL, PostgreSQL ou SQL Server 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
"Nos cliniques soumettent des données d'utilisation hebdomadaires en XLSX. Charger celles-ci dans Access via l'assistant d'import prenait deux heures chaque lundi. Nous exécutons maintenant XLSConverter.exe depuis un .bat planifié sur le partage SMB, et les tables DBF liées se rafraîchissent automatiquement. Les types de champs passent correctement, y compris les colonnes de date que l'assistant Access avait l'habitude de corrompre. Deux heures récupérées par semaine et zéro intervention manuelle."
Linnea Ostberg Database Administrator, Regional Health Network
"Nous devions migrer quinze ans de feuilles de calcul de répartition dans une seule base Access pour l'analyse de tendances. Total Excel Converter X a géré toute l'archive en un seul lot — environ 4 200 classeurs — sur un long week-end. Le fichier journal a signalé la poignée de fichiers avec de mauvaises lignes d'en-tête, et le reste a atterri dans Access avec des champs Numérique et Date appropriés. Mieux que l'alternative d'un import manuel ou d'un script Python ad hoc que personne d'autre ne peut maintenir."
Daniel Petrescu Reporting Analyst, Logistics Co.
"Nous intégrons XLSConverter via l'interface COM dans notre service d'ingestion. Les clients téléchargent des cartes tarifaires Excel via le portail ; le service les convertit en DBF et lie le résultat dans notre base Access de staging pour validation avant promotion vers SQL Server. L'appel ActiveX est rapide et prévisible. La sélection de feuille et FirstRowHeader couvrent presque tous les modèles clients ; quelques cas particuliers ont nécessité un pré-traitement de notre côté, mais le support a été réactif quand nous avons demandé."
Aiyana Holloway ETL Developer, Insurance SaaS
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF. Cela convertit chaque classeur Excel du dossier source en table DBF, qu'Access importe nativement via Données externes → Fichier dBase. Ajoutez -FirstRowHeader 1 pour utiliser la ligne 1 comme noms de champs et -Sheet pour sélectionner une feuille de calcul spécifique.-FirstRowHeader 1, la première ligne fournit les noms de champs, nettoyés en identifiants DBF valides (max 10 caractères, sans espaces).-Sheet NomDeFeuille pour convertir une feuille spécifique, ou exécutez le convertisseur une fois par feuille pour produire un DBF par feuille de calcul. Chaque DBF peut alors être importé comme table séparée dans Access, vous permettant de joindre à travers des feuilles qui vivaient précédemment dans un seul classeur.
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.