Tiene carpetas de libros Excel que necesitan vivir dentro de Microsoft Access — para consultas SQL, uniones entre tablas, indexación o alimentar una base de datos de informes. Abrir cada XLSX en Access y recorrer el asistente de importación no escala más allá de dos o tres archivos. Total Excel Converter X convierte archivos XLS y XLSX a DBF (el formato dBase IV que Access importa de forma nativa) desde la línea de comandos, en lote, sin interfaz gráfica y sin necesidad de instalar Microsoft Office. Instálelo en un servidor Windows, llámelo desde un script o mediante ActiveX, y déjelo funcionar de forma desatendida.
*.xlsx) y el conversor procesa todos los archivos coincidentes en una sola ejecución
(30 días, sin correo electrónico)
(licencia de servidor, perpetua)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Excel es una hoja de cálculo. Cada hoja de trabajo es una cuadrícula plana — filas y columnas, con fórmulas y formato superpuestos. Excel maneja hasta 1.048.576 filas por hoja, pero no tiene uniones nativas, búsquedas indexadas entre archivos ni modelo de transacciones compartido. Dos analistas editando el mismo XLSX producen dos copias divergentes. Informar sobre datos que viven en treinta libros significa escribir cadenas VLOOKUP que se rompen en el momento en que una columna cambia.
Access (y cualquier base de datos que consuma DBF, incluyendo FoxPro, OpenOffice Base y la mayoría de herramientas BI) está construida para datos relacionales. Las tablas tienen campos con tipo, claves primarias e índices. Las consultas usan SQL: uniones, agregaciones, filtros, subconsultas. Una base de datos Access puede contener decenas de millones de filas en múltiples tablas vinculadas y servirlas a través de formularios e informes. Cuando los datos Excel necesitan impulsar ese tipo de análisis, primero deben aterrizar en una tabla de base de datos — y DBF es el formato que Access importa sin fricción de conversión.
| Excel | Access / DBF | |
|---|---|---|
| Estructura | Cuadrícula plana por hoja | Campos con tipo, índices, relaciones |
| Consultas | Fórmulas, VLOOKUP | SQL con uniones y agregaciones |
| Escala | 1M filas por hoja, lento más allá de 100K | Decenas de millones de filas por tabla |
| Concurrencia | Un editor a la vez | Multiusuario con bloqueo de filas |
| Flujo de trabajo | Análisis ad-hoc | Informes, ETL, tuberías BI |
Descargue el instalador desde el enlace anterior y ejecútelo en su servidor o estación de trabajo Windows. La instalación tarda menos de un minuto. No se requiere instalación de Microsoft Office — el conversor analiza XLS y XLSX directamente usando su propio motor, incluyendo fórmulas, fechas, precisión numérica y cadenas Unicode.
Abra cmd.exe o PowerShell. El ejecutable del conversor es XLSConverter.exe, ubicado en la carpeta de instalación (normalmente C:\Program Files\CoolUtils\TotalExcelConverterX\). Agréguelo a la variable PATH del sistema o use la ruta completa en sus comandos.
El comando más sencillo convierte todos los archivos Excel de una carpeta a DBF:
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF
Esto procesa cada archivo .xlsx en C:\Books\ y guarda las tablas DBF resultantes en C:\Output\. Cada libro produce un DBF con el mismo nombre base, listo para arrastrar a Access mediante Datos externos → Archivo dBase.
Controle cómo las columnas se convierten en campos DBF con indicadores adicionales:
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF -Sheet Sheet1 -FirstRowHeader 1 -log C:\Logs\xls2dbf.log
-Sheet Sheet1 — selecciona una hoja específica por nombre (o use un índice)-FirstRowHeader 1 — trata la fila 1 como nombres de campo; el conversor los sanea a identificadores DBF válidos-Range A1:G500 — restringe la conversión a un rango de celdas específico-log C:\Logs\xls2dbf.log — escribe un registro de conversión listando cada archivo de entrada, archivo de salida, recuento de filas y cualquier advertencia de truncamiento de campoGuarde su comando en un archivo .bat y prográmelo con el Programador de tareas de 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
Ejecútelo cada noche, o después de que un equipo financiero deposite su libro diario en la carpeta de entrada. Los archivos DBF luego se vinculan a Access a través de ODBC o se importan como tablas nativas, y el resto de la tubería de informes se ejecuta contra una base de datos real en lugar de una maraña de hojas de cálculo.
Total Excel Converter X incluye una interfaz ActiveX completa. Puede llamar al conversor desde cualquier entorno compatible con COM — .NET, VBScript, PHP, Python, Ruby o ASP. Esto le permite integrar la conversión de Excel a DBF en su propio servicio ETL, portal de intranet o aplicación de ingesta de datos sin recurrir a un proceso de línea de comandos externo.
Ejemplo (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");
Ejemplo (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");
La misma llamada funciona desde ASP.NET, VBScript, Python, Ruby, Perl y JavaScript (Windows Script Host). Su aplicación puede aceptar archivos XLSX cargados desde un formulario web, convertirlos a DBF y vincular el resultado en Access o cargarlo directamente en una tabla intermedia de SQL Server.
| Característica | Conversores en línea | Total Excel Converter X |
|---|---|---|
| Procesamiento en lote | Un archivo a la vez | Archivos ilimitados por lote |
| Privacidad de archivos | Libros subidos a servidor de terceros | Los archivos nunca salen de su equipo |
| Detección de tipos de campo | Todo se convierte en Carácter | Numérico, Fecha, Lógico, Carácter inferidos |
| Selección de hoja | Solo primera hoja | Cualquier hoja por nombre o índice |
| Límite de filas | A menudo limitado a 10K-50K filas | Sin tope artificial |
| Automatización | Solo manual | Línea de comandos, .bat, Programador de tareas, ActiveX |
| Despliegue en servidor | No es posible | Diseñado para servidores, sin interfaz gráfica |
| Requiere Excel instalado | N/A | No |
El conversor lee XLS y XLSX directamente y escribe tablas DBF sin Microsoft Excel, LibreOffice ni ninguna aplicación de hoja de cálculo instalada. Esto evita las licencias de Office por servidor y la conocida inestabilidad de automatizar Excel en escenarios desatendidos.
Los números siguen siendo numéricos, las fechas siguen siendo campos Fecha, los indicadores verdadero/falso se convierten en Lógicos, el texto se convierte en Carácter con el ancho apropiado. Access importa el resultado como una tabla con tipos correctos que puede indexar, unir y consultar inmediatamente — sin paso de conversión posterior a la importación.
Total Excel Converter X está diseñado para uso desatendido. Sin ventanas de interfaz, sin cuadros de diálogo, sin mensajes de confirmación. Se ejecuta silenciosamente desde la línea de comandos o como parte de un servicio — exactamente lo que un anfitrión ETL o servidor de ingesta de datos necesita.
La misma herramienta de línea de comandos convierte Excel a CSV, JSON, XML, SQL, PDF, HTML, ODS y más. Una sola instalación cubre toda su tubería Excel-a-base-de-datos y Excel-a-documento. Cambie -c DBF por -c SQL y obtendrá un script de sentencias INSERT listo para cargar en MySQL, PostgreSQL o SQL Server con las mismas funciones de lote y automatización.
(30 días, sin correo electrónico ni tarjeta de crédito)
(licencia de servidor, perpetua)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Nuestras clínicas envían datos de utilización semanales en XLSX. Cargar esos en Access a través del asistente de importación consumía dos horas cada lunes. Ahora ejecutamos XLSConverter.exe desde un .bat programado sobre el recurso compartido SMB, y las tablas DBF vinculadas se actualizan automáticamente. Los tipos de campo llegan correctamente, incluyendo las columnas de fecha que el asistente de Access solía destrozar. Dos horas recuperadas por semana, y cero toques manuales."
Linnea Ostberg Database Administrator, Regional Health Network
"Necesitábamos migrar quince años de hojas de cálculo de despacho a una sola base de datos Access para análisis de tendencias. Total Excel Converter X manejó todo el archivo en un solo lote — aproximadamente 4.200 libros — durante un fin de semana largo. El archivo de registro marcó el puñado de archivos con filas de encabezado defectuosas, y el resto aterrizó en Access con campos Numéricos y de Fecha apropiados. Mejor que la alternativa de importación manual o un script Python único que nadie más pueda mantener."
Daniel Petrescu Reporting Analyst, Logistics Co.
"Integramos XLSConverter mediante la interfaz COM en nuestro servicio de ingesta. Los clientes cargan tarjetas de tarifas Excel a través del portal; el servicio las convierte a DBF y vincula el resultado en nuestra base de datos Access intermedia para validación antes de promover a SQL Server. La llamada ActiveX es rápida y predecible. La selección de hoja y FirstRowHeader cubren casi todas las plantillas de cliente; un par de casos límite necesitaron preprocesamiento de nuestro lado, pero el soporte fue receptivo cuando preguntamos."
Aiyana Holloway ETL Developer, Insurance SaaS
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF. Esto convierte cada libro Excel en la carpeta de origen a una tabla DBF, que Access importa de forma nativa a través de Datos externos → Archivo dBase. Añada -FirstRowHeader 1 para usar la fila 1 como nombres de campo y -Sheet para elegir una hoja específica.-FirstRowHeader 1 la primera fila proporciona los nombres de campo, saneados a identificadores DBF válidos (máximo 10 caracteres, sin espacios).-Sheet SheetName para convertir una hoja específica, o ejecute el conversor una vez por hoja para producir un DBF por hoja. Cada DBF puede luego importarse como una tabla separada en Access, permitiéndole unir hojas que antes vivían en un solo libro.
string src="C:\\test\\Source.xlsx";
string dest="C:\\test\\Dest.PDF";
ExcelConverterX Cnv = new ExcelConverterX();
Cnv.Convert(src, dest, "-c PDF -log c:\\test\\Excel.log");
MessageBox.Show("¡Conversión completa!");
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("empezado...");
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 msgPath = $@"{assemblyDirectoryPath}\MSG\MSG-1.xlsx";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(msgPath))
{
sbLogs.AppendLine("archivos existen...");
}
else
sbLogs.AppendLine("ARCHIVOS EXE & MSG NO existen...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{msgPath} {outPath}";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"espera...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"completo...{DateTime.Now.ToString()}");
}
int sleepCounter = 10;
while(!File.Exists(outPath) && sleepCounter > 0)
{
System.Threading.Thread.Sleep(1000);
sbLogs.AppendLine("durmiendo...");
sleepCounter--;
}
if (File.Exists(outPath))
sbLogs.AppendLine("Conversión completada con éxito.");
}
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"
Rresponse.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.XLS";
$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 "fallo:".$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(file_path):
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.XLS"; 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;
Descargue la versión de prueba y convierta sus archivos en minutos.
No se requiere tarjeta de crédito ni email.