Convert XLSX, XLS, ODS, CSV to PDF, JSON, XML, DBF and 15+ formats on Windows servers — without Microsoft Excel.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016 / 2019/2022 Server
and
Docker / Citrix / Wine
Total Excel Converter X is a server-side SDK that converts XLSX, XLS, XLSM, ODS, CSV, and XML spreadsheets to PDF, JSON, XML, HTML, DBF, SQL, and 15+ other formats — without Microsoft Excel or any Office runtime installed on the server. It runs headless: no GUI, no dialogs, no popups. Total Excel Converter X ships with both a command-line binary and an ActiveX/COM interface, so it drops into ASP, PHP, .NET, Python, Ruby, Java, and any other COM-aware backend. The full list of supported source formats:
-list) processing for unattended runs.The program reads workbooks directly — no Excel automation, no Open XML SDK dependency, no headless Office instance to babysit.
High converting speed and batch conversions result in a simple and boredom-free process. Try it for free (30 days trial period, no limitations) and find out that it is really worth its money.
Some of the currently supported file format conversions:
|
|
|
(includes 30 day FREE trial)
(only $550.00)
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;
"We replaced an Excel-Interop COM-automation script with Total Excel Converter X two years ago. The Interop pipeline was leaking handles, crashing app pools, and required a full Office install on every conversion VM. Now those VMs run nothing but ExcelConverterX.exe behind a queue. Conversion latency dropped from around 12 seconds per workbook to 1.5 seconds, and the Office licensing line item is gone. The .NET integration with our worker took half a day."
Mateusz K.
Senior Backend Developer at a fintech
"Our customers upload payroll spreadsheets in every flavor: vendor templates in XLS, modern XLSX with macros, the occasional ODS from LibreOffice users. Total Excel Converter X normalizes everything to a single archival PDF profile with AES-256 encryption and stamps the per-permission flags we need for compliance. The -list queue file plus -verbosity detail logs feed straight into our log aggregator. Headless on Windows Server Core, no Office, no surprises."
Sofia L.
DevOps Engineer at a payroll SaaS
"We expose XLSX-to-JSON as a service to our ETL customers. Total Excel Converter X is the engine behind that endpoint. -FirstRowIsHeader and direct JSON output mean we did not have to write our own parser or maintain a separate CSV-to-JSON step. Five years of throughput at thousands of conversions per day, no failures we can blame on the converter. The CLI is stable and the output is bit-identical run to run."
Hamid Y.
CTO at an ETL platform vendor
"Bundled Total Excel Converter X into our reporting product under the Royalty-Free License. The one-time per-project fee was a fraction of what Aspose-Cells wanted on a per-developer subscription. Our installer ships and registers the ActiveX, our app calls it directly, end users see only our UI. The 32-bit ActiveX limitation cost us a couple of days of pipeline rework, but support was responsive when we asked about workarounds."
Britt N.
Independent Software Vendor
"Brokers upload listing exports in XLSX with embedded photos and merged cells, and we need clean PDF for the public-facing portal. Total Excel Converter X handles the rendering quirks (merged cells, frozen panes, named ranges) better than the open-source libraries we evaluated. Combining ten workbooks into one monthly PDF with -combine -sort name is a feature we use every release cycle."
Daichi T.
Lead .NET Developer at a real-estate platform
Total Excel ConverterX ships with ExcelConverterX.exe, a console binary you can drive from scripts, scheduled tasks, CI runners, or any backend service. The flag set matches the GUI ExcelConverter.exe; for the full reference see the command-line documentation. The recipes below cover the cases we hear about most often from SDK customers.
The smallest possible call — one source file, one output, one target format.
ExcelConverterX.exe "C:\reports\Q4-financials.xlsx" "C:\out\Q4-financials.pdf" -cPDF
Process every workbook in a folder and drop the PDFs into a sibling output directory. Swap the mask for *.xls, *.ods, or *.csv to pick a different source format.
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cPDF
Most data pipelines need CSV, but rarely with a plain comma. Use -td to pick from the standard delimiters (Tab, Space, Semicolon, Comma) or -td Other -tdo to set anything else — here a pipe character.
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cCSV -td Other -tdo "|" -FirstRowIsHeader -UseQuote
-FirstRowIsHeader tells the converter to treat row 1 as column names; -UseQuote wraps text fields in quotes so embedded delimiters don't break parsing.
For feeding workbook data into a REST endpoint or an ETL job, render directly to a structured format instead of going through CSV.
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cJSON -FirstRowIsHeader
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cXML -FirstRowIsHeader
Plenty of accounting and ERP tools still consume DBF tables. The converter writes valid dBase files straight from a workbook.
ExcelConverterX.exe "C:\reports\customers.xlsx" "C:\out\customers.dbf" -cDBF -FirstRowIsHeader
By default every visible sheet becomes its own output file. -sheets picks only the sheets you name; -cs combines them into a single document; -ExportAll includes hidden sheets.
ExcelConverterX.exe "C:\reports\workbook.xlsx" "C:\out\summary.pdf" -cPDF -sheets "Summary;Q4;Forecast" -cs
Month-end reporting often means stitching ten or twenty workbooks into a single deliverable. -combine merges them into one PDF in source-file order; -sort name controls that order.
ExcelConverterX.exe "C:\reports\monthly\*.xlsx" "C:\out\monthly-pack.pdf" -cPDF -combine -sort name
When workbooks live in nested client folders, -Recurse walks subdirectories and -kfs recreates the same tree on the output side instead of flattening everything into one bucket.
ExcelConverterX.exe "C:\clients\*.xlsx" "C:\out\clients\" -cPDF -Recurse -kfs
Standard for sending financials to external recipients: an owner password locks edit/print permissions, a user password gates opening the file, and AES-256 encryption keeps it solid.
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Print -EncryptStrength es256AES
Replace Print with any combination of Copy, Modify, Annotation, FormFill, HighResPrint to grant exactly the rights you want. Add -Pass "wb-pwd" upfront if the source workbook itself is password-protected.
When a worker writes a queue file and the converter consumes it, you don't want to encode file paths into the command line itself. -list reads file masks (one per line) from a text file; -verbosity detail writes one line per file; -logmode append keeps history across runs.
ExcelConverterX.exe -list "C:\queues\batch.txt" "C:\out\" -cPDF -log "C:\logs\xlsxconv.log" -verbosity detail -logmode append
Developers and IT teams that convert Excel files to PDF, DOC, CSV, and more on servers
Add Excel-to-PDF conversion to your web app via ActiveX
Web developers integrate Total Excel ConverterX into ASP, PHP, or .NET applications so users can upload Excel files and receive converted PDF, HTML, or CSV output instantly. The converter runs silently on the server with no GUI, supporting multiple simultaneous users without interruption.
Auto-convert Excel exports from business systems
Enterprise IT teams schedule Total Excel ConverterX to process nightly XLS and XLSX exports from ERP, CRM, and BI platforms. Convert financial reports to protected PDF, extract data to CSV for databases, or transform spreadsheets to HTML for internal dashboards — all unattended via command line.
Auto-convert new Excel files as they arrive in folders
Paired with Total Folder Monitor, Total Excel ConverterX watches designated folders and automatically converts new XLS files as they appear. Incoming spreadsheets from partner uploads, FTP drops, or automated exports are converted to the required format and routed to the right destination hands-free.
Serve Excel conversion to all users on your local network
Organizations deploy Total Excel ConverterX as a shared service on the company network. Employees from finance, sales, and operations submit Excel files for conversion to PDF, DOC, or CSV through a centralized server — no need to install desktop converters on every workstation.
Embed spreadsheet conversion into your own software
Software vendors embed Total Excel ConverterX into their products to add Excel export capabilities. The ActiveX interface provides conversion functions through simple API calls — convert XLS, XLSX, ODS, and DBF files to PDF, HTML, CSV, SQL, LaTeX, and 15+ other formats from within any COM-compatible application.
Updated Fri, 01 May 2026
(only $550.00)
new COM("ExcelConverter.ExcelConverterX") in PHP, new ExcelConverterX() in .NET, win32com.client.Dispatch in Python, WIN32OLE.new in Ruby. Alternatively, the ExcelConverterX.exe command-line binary can be invoked from any process, scheduler, or shell script. Direct PDF streaming via ConvertToStream is also available for ASP/PHP web responses.-mp "owner-pwd" for the owner password and -up "user-pwd" to gate file opening. The -perm flag accepts any combination of Print, HighResPrint, Copy, Modify, Annotation, FormFill. Encryption strength is controlled by -EncryptStrength es256AES. If the source workbook itself is password-protected, pass -Pass "workbook-pwd" upfront so the converter can open it.-sheets "Summary;Q4;Forecast" to pick named sheets from a workbook. Add -cs to combine the picked sheets into a single output document, or -ExportAll to include hidden sheets too. To merge several workbooks into one PDF in source-file order, run -combine -sort name against a folder mask. -Recurse walks subdirectories and -kfs mirrors the folder tree on the output side instead of flattening everything into one bucket.Updated Fri, 01 May 2026
(only $550.00)
Download free trial and convert your files in minutes.
No credit card or email required.