Logo
Home Products Support Contact About Us
arrow1 File Converters
arrow1 TIFF and PDF apps
arrow1 Forensic
arrow1 Freeware


Convert Excel to CSV via Command Line — Server Batch Converter

You have folders of XLS and XLSX files that need to feed a database, an analytics pipeline, or a reporting dashboard — and the target system speaks CSV, not Excel. Opening every workbook in Excel and clicking Save As → CSV does not scale past two or three files, and it falls apart entirely on a server with no Excel installation. Total Excel Converter X converts Excel files to CSV from the command line, in batch, with no GUI and no Microsoft Office on the machine. Install it on a Windows server, call it from a script or via ActiveX, and let it run unattended.

What Total Excel Converter X Does

  • Batch conversion — pass a wildcard (*.xlsx) and the converter processes every matching file in one run
  • Delimiter control — comma, semicolon, tab, or pipe via -CSVDelimiter, matching whatever your importer expects
  • Encoding control — output UTF-8, UTF-16, Windows-1251, ISO-8859-1, or any other code page so non-ASCII characters survive the conversion
  • Multi-sheet handling — collapse all sheets into one CSV or split each sheet into its own file with -EachSheetSeparate
  • Formula evaluation — CSV stores values, not formulas; the converter evaluates each cell and writes the calculated result
  • No Excel required — reads XLS and XLSX directly without Microsoft Office on the server
  • No GUI — runs silently from the command line with no pop-up windows or confirmation dialogs
  • ActiveX / COM — call the converter from .NET, VBScript, PHP, Python, or any COM-compatible environment to embed conversion into your own application
  • .bat scripting — save commands in batch files and schedule them with Windows Task Scheduler for fully automated conversion

Download Free Trial

(30 days, no email)

Buy License

(server license, perpetual)

Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022

Excel vs CSV: Why Convert?

Excel files (XLS, XLSX) are container formats. A workbook holds multiple sheets, formulas, formatting, charts, pivot tables, conditional rules, and embedded objects. XLS is a proprietary binary format from the 1990s; XLSX is a ZIP archive of XML parts. Both require a parser that understands the Office schema. Most databases and analytics tools cannot read either directly.

CSV is plain text — one row per line, fields separated by a delimiter. Every database engine, every scripting language, every BI tool, and every ETL platform reads CSV without translation. PostgreSQL COPY, MySQL LOAD DATA INFILE, BigQuery bq load, pandas read_csv, R read.csv — they all expect CSV. When Excel data needs to enter that pipeline, it has to become CSV first.

Excel (XLS / XLSX)CSV
FormatProprietary binary or ZIP-XMLPlain text
Sheets per fileMultipleOne table
FormulasStored and recalculatedEvaluated values only
FormattingFonts, colors, borders, chartsNone
Database importRequires ODBC or libraryNative in every engine
AudienceOffice usersDatabases, scripts, ETL tools

How to Convert Excel to CSV from the Command Line

Step 1. Install Total Excel Converter X

Download the installer from the link above and run it on your Windows server or workstation. The setup takes under a minute. No Microsoft Excel or Office installation is required — the converter parses XLS and XLSX directly using its own engine.

Step 2. Open the Command Prompt

Open cmd.exe or PowerShell. The converter executable is XLSConverter.exe, located in the installation folder (typically C:\Program Files\CoolUtils\TotalExcelConverterX\). Add it to your system PATH or use the full path in your commands.

Step 3. Run the Basic Conversion

The simplest command converts all Excel files in a folder to CSV:

XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV

This processes every .xlsx file in C:\Reports\ and saves the resulting CSV files in C:\Output\. Each Excel file produces one CSV with the same base name. Use *.xls to convert legacy binary files, or *.xls* to catch both extensions in one pass.

Step 4. Set Delimiter, Quoting, and Encoding

The CSV defaults often need tweaking to match the target system. Real importers are picky about separators and code pages:

XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV -CSVDelimiter ";" -CSVQuotation "\"" -Encoding UTF-8 -log C:\Logs\xls2csv.log
  • -CSVDelimiter "," — comma (default). Use ";" for European locales, "\t" for tab-separated, or "|" for pipe
  • -CSVQuotation "\"" — wrap fields containing the delimiter, quotes, or line breaks in double quotes
  • -Encoding UTF-8 — force UTF-8 output. Use UTF-16, Windows-1251, Windows-1252, or ISO-8859-1 as the target system requires
  • -EachSheetSeparate — split a multi-sheet workbook into one CSV per sheet, named {file}_{sheet}.csv
  • -log C:\Logs\xls2csv.log — write a conversion log for verification

Step 5. Automate with a .bat File

Save your command in a .bat file and schedule it with Windows Task Scheduler:

@echo off
"C:\Program Files\CoolUtils\TotalExcelConverterX\XLSConverter.exe" C:\Incoming\*.xlsx C:\Archive\CSV\ -c CSV -CSVDelimiter ";" -Encoding UTF-8 -EachSheetSeparate -log C:\Logs\xls2csv.log

This runs the conversion every night (or at whatever interval you set) and writes a log file so you can verify the results. Drop new XLSX files into C:\Incoming\ and the next scheduled run picks them up.

ActiveX / COM Integration

Total Excel Converter X includes a full ActiveX interface. You can call the converter from any COM-compatible environment — .NET, VBScript, PHP, Python, Ruby, or ASP. This lets you embed Excel-to-CSV conversion into your own ETL job, web upload form, or reporting service without shelling out to a command-line process.

Example (C#/.NET):

XLSConverterX Cnv = new XLSConverterX();
Cnv.Convert("C:\\Reports\\sales.xlsx", "C:\\Output\\sales.csv", "-c CSV -CSVDelimiter \";\" -Encoding UTF-8 -log c:\\Logs\\xls.log");

Example (PHP):

$c = new COM("XLSConverter.XLSConverterX");
$c->convert("C:\\Reports\\sales.xlsx", "C:\\Output\\sales.csv", "-c CSV -CSVDelimiter \";\" -Encoding UTF-8 -log c:\\Logs\\xls.log");

The same call works from ASP.NET, VBScript, Python, Ruby, Perl, and JavaScript (Windows Script Host). Your application can accept uploaded XLSX files and return CSV ready for direct ingestion into a database or analytics tool.

Online Converters vs Total Excel Converter X

FeatureOnline ConvertersTotal Excel Converter X
Batch processingOne file at a timeUnlimited files per batch
File privacyFiles uploaded to third-party serverFiles never leave your machine
File size limitTypically 5–25 MBNone — gigabyte workbooks supported
Delimiter / encoding controlRare or hiddenFull control via flags
Multi-sheet handlingFirst sheet only, usually-EachSheetSeparate or merged
AutomationManual onlyCommand line, .bat, Task Scheduler, ActiveX
Server deploymentNot possibleDesigned for servers, no GUI needed
Requires Excel installedN/ANo
Requires internetYesNo

When You Need Excel to CSV Command-Line Conversion

  • Loading Excel into PostgreSQL or MySQL. Database engines do not read XLSX. Convert to CSV, then run COPY sales FROM '/data/sales.csv' CSV HEADER in Postgres or LOAD DATA INFILE in MySQL. The whole pipeline runs in seconds for files that would take minutes through a GUI importer.
  • Feeding BigQuery or Snowflake. Cloud warehouses ingest CSV natively via bq load or COPY INTO. A nightly .bat job converts the day's Excel reports to CSV and uploads them to a staging bucket for the warehouse to pick up.
  • Pandas, R, and Jupyter pipelines. Data scientists work in pandas read_csv and R read.csv. When the source data arrives as XLSX from finance or operations, a server-side converter produces clean CSV without anyone touching Excel.
  • Regulatory and tax submissions. Many financial and tax authorities accept only CSV uploads with a fixed delimiter and code page. Convert internal Excel reports to compliant CSV with -CSVDelimiter and -Encoding set to match the agency's spec.
  • Syncing dashboards and BI tools. Power BI, Tableau, and Looker connectors prefer CSV for incremental refreshes. A converter running on the report server produces the latest CSV every hour, ready for the BI tool to pick up.
  • Eliminating Microsoft Excel on servers. Running Excel via Office automation in unattended mode is unsupported and crashes regularly. Total Excel Converter X reads XLSX directly with no Office dependency.

Why Total Excel Converter X

No Excel Required

The converter parses XLS and XLSX files directly. You do not need Microsoft Office, LibreOffice, or any spreadsheet application installed on the server. This avoids licensing costs and the well-known instability of automating Excel in unattended scenarios.

True Server Application

Total Excel Converter X is designed for unattended use. No GUI windows, no dialog boxes, no confirmation prompts. It runs silently from the command line or as part of a service — exactly what a production server needs.

Delimiter, Encoding, and Multi-Sheet Control

Real CSV importers care about details. A semicolon delimiter for European systems, UTF-8 for international text, double-quote wrapping for fields with embedded commas. An Excel workbook with twelve monthly sheets is a single file, but CSV holds one table per file — -EachSheetSeparate splits the workbook into twelve named CSV files, each ready for separate ingestion. Every detail is exposed as a command-line flag, so the output matches whatever your downstream pipeline expects on the first try.

Not Just CSV

The same command-line tool converts Excel to PDF, DOC, HTML, XML, JSON, ODS, TIFF, JPEG, and more. One installation covers every Excel conversion target. Change -c CSV to -c PDF and you get PDF reports with the same batch and automation features.

Download Free Trial

(30 days, no email or credit card)

Buy License

(server license, perpetual)

Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022


quote

Total Excel Converter X Customer Reviews 2026

Rate It
Rated 4.7/5 based on customer reviews
5 Star

"Our pipeline ingests 200+ XLSX files a day from regional store managers and loads them into Postgres via COPY. We replaced a fragile Python-plus-openpyxl script with XLSConverter.exe in a .bat job. The semicolon delimiter and UTF-8 flags solved our German and Polish character issues on the first run. Throughput went from forty minutes to under five for the same nightly batch."

5 Star Priya Raghavan Data Engineer, Retail Analytics

"We feed monthly Excel workbooks into BigQuery for the executive dashboard. The -EachSheetSeparate flag was the missing piece — one CSV per sheet maps cleanly to one staging table per business line. No more manual sheet-by-sheet exports from Excel. The COM interface lets the same tool serve our internal upload portal."

5 Star Daniel Kowalski BI Analyst, Insurance Group

"I integrated XLSConverter via the ActiveX class into a .NET service that processes broker reports. Formula evaluation works correctly even on the larger workbooks with cross-sheet references. The encoding flag handles our Italian and French input cleanly. Documentation on a few of the rarer flags could be more detailed, but support replied to my questions within a business day."

4 Star Sofia Marchetti ETL Developer, FinTech Platform

FAQ ▼

The basic command is: XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV. This converts every XLSX file in the source folder to CSV. Add flags like -CSVDelimiter ";", -Encoding UTF-8, or -EachSheetSeparate to control the output.
No. Total Excel Converter X reads XLS and XLSX directly without Microsoft Excel, Office, or LibreOffice. This avoids licensing costs and the instability of automating Excel in unattended scenarios.
Use the -CSVDelimiter flag. Pass "," for comma (default), ";" for semicolon (common in European locales), "\t" for tab, or "|" for pipe. Wrap the value in double quotes on the command line.
Add -Encoding UTF-8 to the command. Other supported code pages include UTF-16, Windows-1251, Windows-1252, ISO-8859-1, and many more. Set the encoding to match what your database or importer expects so non-ASCII characters survive intact.
By default the converter writes all sheets into a single CSV file, separated by a sheet-name marker. Add -EachSheetSeparate and the converter produces one CSV per sheet, named {file}_{sheet}.csv. Use that mode whenever you load each sheet into a different database table.
Yes. CSV is plain text and stores no formulas. Total Excel Converter X evaluates every formula and writes the calculated result to the CSV cell. Dates, percentages, and currency values come through as their displayed numeric value.
Yes. Save the conversion command in a .bat file and add it to Windows Task Scheduler. The converter runs unattended at the scheduled time and writes a log file for verification. The same command works from cron-style schedulers or any CI/ETL pipeline that can launch a Windows process.

 

Start working now!

Download free trial and convert your files in minutes.
No credit card or email required.

⬇ Download Free Trial Windows 7/8/10/11 • 120 MB

Examples of Total Excel Converter X

Convert Excel files with Total Excel Converter X and .NET


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);

Convert Excel files on web servers with Total Excel Converter X

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);
        }
    }
More information about Azure Functions.

Convert Excel files on web servers with Total Excel Converter X

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

Stream the resulting PDF directly from ASP

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

Convert Excel spreadsheets with PHP and Total Excel Converter X

$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;

Convert Excel spreadsheets with Total Excel Converter X and Ruby

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

Convert Excel spreadsheets with Total Excel Converter X and Python

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)

Convert Excel files with Pascal and Total Excel Converter X

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;

Convert Excel and ODS files on web servers with Total Excel Converter X

var c = new ActiveXObject("ExcelConverter.ExcelConverterX");
c.Convert("C:\\test\\source.xlsx", "C:\\test\\dest.pdf", "-c PDF");
if (c.ErrorMessage != "")
  alert(c.ErrorMessage)

Convert Excel spreadsheets with Total Excel Converter X and Perl

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;

Support
Total Excel Converter X Preview1

Latest News

Newsletter Subscribe

No worries, we don't spam.


© 2026. All rights reserved. CoolUtils File Converters

Cards