Server CSV converter with ActiveX & DLL — convert CSV, TSV to PDF, Excel, JSON, XML via command line
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016 / 2019/2022 Server
and
Docker / Citrix / Wine
Total CSV ConverterX works as a standalone client-server application on your local network or as a web service. Multithreaded engine processes large volumes of CSV files at maximum speed. Compatible with IIS, Docker, Citrix and Wine.
Download the free 30-day trial with full functionality — ActiveX, command line and all output formats included. Looking for the desktop version? See Total CSV Converter. More server products at CoolUtils Server Products.
(includes 30 day FREE trial)
(only $850.00)
string src = @"C:\test\Source.csv";
string dest = @"C:\test\Dest.xlsx";
var cnv = new CSVConverterX();
cnv.Convert(src, dest, "-cXLSX -log c:\\test\\CSV.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\CSVConverterX.exe";
sbLogs.AppendLine(executablePath + "...");
var srcPath = $@"{assemblyDirectoryPath}\src\sample.csv";
var outPath = Path.GetTempFileName() + ".xlsx";
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}\" -cXLSX";
using (Process exeProcess = Process.Start(startInfo))
{
sbLogs.AppendLine($"wait...{DateTime.Now.ToString()}");
exeProcess.WaitForExit();
sbLogs.AppendLine($"complete...{DateTime.Now.ToString()}");
}
sbLogs.AppendLine("Conversion complete.");
}
catch (Exception ex)
{
sbLogs.AppendLine(ex.ToString());
}
return new OkObjectResult(sbLogs);
}
}
dim C
Set C=CreateObject("CSVConverter.CSVConverterX")
C.Convert "c:\test\source.csv", "c:\test\dest.xlsx", "-cXLSX -log c:\test\CSV.log"
Response.Write C.ErrorMessage
set C = nothing
dim C
Set C=CreateObject("CSVConverter.CSVConverterX")
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.csv", "C:\www\ASP", "-cpdf -log c:\html.log")
set C = nothing
$src="C:\\test\\test.csv";
$dest="C:\\test\\test.xlsx";
if (file_exists($dest)) unlink($dest);
$c= new COM("CSVConverter.CSVConverterX");
$c->convert($src,$dest, "-cXLSX -log c:\\test\\CSV.log");
if (file_exists($dest)) echo "OK"; else echo "fail:".$c->ErrorMessage;
require 'win32ole'
c = WIN32OLE.new('CSVConverter.CSVConverterX')
src = "C:\\test\\test.csv"
dest = "C:\\test\\test.xlsx"
c.convert(src, dest, "-cXLSX -log c:\\test\\CSV.log")
if not File.exist?(dest)
puts c.ErrorMessage
end
import win32com.client
import os.path
c = win32com.client.Dispatch("CSVConverter.CSVConverterX")
src = "C:\\test\\test.csv"
dest = "C:\\test\\test.xlsx"
c.convert(src, dest, "-cXLSX -log c:\\test\\CSV.log")
if not os.path.exists(dest):
print(c.ErrorMessage)
uses Dialogs, Vcl.OleAuto;
var
c: OleVariant;
begin
c := CreateOleObject('CSVConverter.CSVConverterX');
c.Convert('c:\test\source.csv', 'c:\test\dest.xlsx', '-cXLSX -log c:\test\CSV.log');
if c.ErrorMessage <> '' then
ShowMessage(c.ErrorMessage);
end;
var c = new ActiveXObject("CSVConverter.CSVConverterX");
c.Convert("C:\\test\\source.csv", "C:\\test\\dest.xlsx", "-cXLSX");
if (c.ErrorMessage != "")
alert(c.ErrorMessage)
use Win32::OLE; my $src = "C:\\test\\test.csv"; my $dest = "C:\\test\\test.xlsx"; my $c = CreateObject Win32::OLE 'CSVConverter.CSVConverterX'; $c->convert($src, $dest, "-cXLSX -log c:\\test\\CSV.log"); print $c->ErrorMessage if -e $dest;
"I convert a CSV file to an XLS file on the windows command line. I was open to installing Office but Total CSV Converter X managed the task without it. A good piece of software, thank you!"
Ron Duggs
Consumer Settlements
"We had a need to extract several CSV files from different worksheets. Tried several converters, but only this one worked fine. Thank you!"
Gilbert L.
Independent Developer
"Customers upload nightly transaction CSVs in different dialects: comma-separated US, semicolon-separated EU, tab-separated from a legacy mainframe. Total CSV Converter X normalizes everything to XLSX with our reporting schema before it touches the analytics warehouse. The .NET wrapper plugs into our existing pipeline, throughput is around 300 files per minute on our hardware, and the CLI is deterministic across runs."
Marek S.
Senior Backend Developer at a fintech
"We replaced an Excel-Interop pipeline that needed Office on every conversion VM. Now those VMs run nothing but CSVConverterX.exe behind a queue. -Recurse -kfs preserves the partner-folder hierarchy on the output side, and -separator with a custom character covers every quirky upload format we receive. Headless on Windows Server Core, no Office, no surprises across four years of production use."
Aoife K.
DevOps Engineer at a logistics SaaS
"Bundled Total CSV Converter X into our data-migration 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."
Tomasz B.
Independent Software Vendor
Total CSV ConverterX ships with CSVConverterX.exe, a console binary you can drive from scripts, scheduled tasks, ETL pipelines, or any backend service that needs to turn CSV and TSV data into a different format. The flag set matches the GUI CSVConverter.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. Useful for ad-hoc reporting when a clean, paginated PDF needs to land in someone's inbox.
CSVConverterX.exe "C:\reports\sales.csv" "C:\out\sales.pdf" -cPDF
Process every CSV in a folder and write the corresponding XLS files into a sibling output directory. The wildcard *.csv picks up everything at the top level of the source path.
CSVConverterX.exe "C:\reports\*.csv" "C:\out\" -cXLS
Swap -cXLS for -cODS to target OpenOffice Calc, or -cDBF when feeding a legacy database.
Reporting exports often arrive as a dated tree: one folder per region, one subfolder per day. -Recurse walks subdirectories; -kfs recreates the same tree on the output side instead of flattening everything into one bucket.
CSVConverterX.exe "C:\reports\2026\*.csv" "C:\out\2026\" -cPDF -Recurse -kfs
Excel exports in German, French, and other locales use semicolons instead of commas because the comma is the decimal separator. -comma sets the field delimiter for the input file regardless of the flag's name.
CSVConverterX.exe "C:\reports\de\*.csv" "C:\out\" -cXLS -comma ";"
TSV files, exports from SQL clients, and log dumps frequently use a tab or pipe as the field separator. Pass the literal character to -comma — for tab, use \t.
CSVConverterX.exe "C:\data\*.tsv" "C:\out\" -cXLS -comma "\t"
CSVConverterX.exe "C:\data\*.csv" "C:\out\" -cXLS -comma "|"
Many real-world CSV exports start with a few lines of metadata (report title, date, separator hint) before the actual table begins. -skip drops those preamble rows; -fh tells the converter that the next row is the header so column names propagate into the output.
CSVConverterX.exe "C:\reports\*.csv" "C:\out\" -cXLS -skip 3 -fh
Some pipelines wrap text fields in single quotes or back-ticks instead of the standard double quote. -quote sets the character the parser treats as a string delimiter on input.
CSVConverterX.exe "C:\exports\*.csv" "C:\out\" -cXML -quote "'"
XML is still the lingua franca for many B2B integrations and ERP imports. The converter writes one XML element per CSV row, using header names as tags when -fh is set.
CSVConverterX.exe "C:\reports\orders.csv" "C:\out\orders.xml" -cXML -fh
When a worker writes a queue file and the converter consumes it, you don't want to encode every path on the command line. -list reads file masks (one per line) from a text file — ideal for nightly batches assembled by another script.
CSVConverterX.exe -list "C:\queues\nightly.txt" "C:\out\" -cPDF
Once CSVConverterX.exe runs as a service or scheduled job, the only way to know what happened is the log. -verbosity detail writes one line per file instead of errors only; -log redirects all messages to a file so the console stays quiet.
CSVConverterX.exe "C:\reports\*.csv" "C:\out\" -cXLS -log "C:\logs\csvconv.log" -verbosity detail
Add -do if the source files should be deleted after a successful conversion — handy for spool-folder workflows where the queue empties as it drains.
Development teams that need server-side CSV conversion via ActiveX or command line
Power web-based CSV-to-PDF and CSV-to-Excel tools
Web developers integrate Total CSV ConverterX via ActiveX into ASP or PHP applications to offer CSV conversion as an online service. Users upload CSV files through a browser, the server converts them to PDF, XLS, or HTML on the fly, and delivers the result — all without any desktop software or pop-up windows.
Convert CSV data dumps from ERP systems automatically
Enterprise IT teams deploy Total CSV ConverterX on servers to process CSV exports from SAP, Oracle, and other ERP systems. Scheduled tasks convert nightly data dumps to Excel for finance teams, XML for partner integrations, or DBF for legacy systems — preserving folder structure and handling custom delimiters automatically.
Transform CSV feeds into JSON, XML, or database formats
Data engineering teams use the command line interface to build conversion steps into ETL pipelines. CSV files from APIs, IoT sensors, or log systems are converted to JSON for web services, XML for data warehouses, or SQL-ready formats for direct database import — with full control over data types, separators, and row filtering.
Serve converted reports to multiple users on a network
Total CSV ConverterX runs as a client-server application on a local network, allowing multiple users to request CSV conversions simultaneously. Finance, sales, and operations teams each get their data exports converted to the format they need — PDF for management, XLS for analysts, HTML for dashboards — from a single server installation.
Convert transactional CSV logs to archival PDF and DOC
Regulated industries convert transactional CSV logs and audit trails into PDF or DOC for long-term archival storage. Total CSV ConverterX processes large volumes of files silently on the server with no GUI interruptions, making it ideal for unattended overnight jobs and compliance-driven retention workflows.
Updated Fri, 01 May 2026
(only $850.00)
Updated Fri, 01 May 2026
(only $850.00)
Download free trial and convert your files in minutes.
No credit card or email required.