Конвертируйте XLS, XLSX, ODS, XML электронные таблицы в пакетном режиме через веб-серверы.
Windows
2000/2003/Vista
7/8/10/11
and
2012/2016/2019/2022 Server
and
Docker/Citrix/Wine
Total Excel Converter X — это серверный SDK, который конвертирует таблицы XLSX, XLS, XLSM, ODS, CSV и XML в PDF, JSON, XML, HTML, DBF, SQL и более чем 15 других форматов без Microsoft Excel или какого-либо Office-рантайма на сервере. Он работает в headless-режиме: без графического интерфейса, без диалогов, без всплывающих окон. Total Excel Converter X поставляется и как консольный бинарник, и как ActiveX/COM-компонент, поэтому встраивается в ASP, PHP, .NET, Python, Ruby, Java и любой другой COM-совместимый бэкенд. Полный список поддерживаемых исходных форматов:
-list) для запусков без оператора.Программа читает книги напрямую — без автоматизации Excel, без зависимости от Open XML SDK, без headless-инстанса Office, за которым нужно следить.
Высокая скорость конвертации и пакетная обработка делают процесс простым и не утомительным. Попробуйте бесплатно (30-дневный пробный период без ограничений) и убедитесь, что программа действительно стоит своих денег.
Некоторые из поддерживаемых на сегодня форматов конвертации:
|
|
|
LLM-агенты (Claude, ChatGPT, Cursor, Cline) и retrieval-пайплайны (LangChain, LlamaIndex, Haystack) не читают XLSX. Они читают текст. Total Excel Converter X пишет таблицы в GitHub-Flavored Markdown со структурированным фронтматтером и опциональным Docling-совместимым sidecar, поэтому книга попадает в ваш векторный индекс с иерархией, заголовками, формулами и единицами измерения нетронутыми — а не плоской строкой с потерянными объединёнными ячейками.
Что вы получаете, выбирая Markdown на выходе:
source_file, format (MIME), generator, created, число листов, число строк/колонок, определённые языки, бинарный хэш для provenance
# / ## / ###, поэтому RAG-сплиттеры режут по семантическим границам, а не посреди таблицы
.docling.json — типизированные колонки с единицами (EUR, pcs, kWh, %), нормализованные формулы (=qty*unit_price) рядом с исходными координатами (of:=[.C5]*[.D5]) и chunks_hint для сплиттера
UnstructuredMarkdownLoader / MarkdownReader подхватывает результат
Это то, что мы называем CoolUtils RAG Adapter — единый Markdown-контракт, общий для всех продуктов Total Converter X. Полная спецификация, пример .md + .docling.json и фрагменты для интеграции живут на странице Coolutils Converter X — RAG Adapter.
(включает 30-дневный бесплатный пробный период)
(только $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;
"Два года назад мы заменили скрипт на Excel-Interop COM-автоматизации на Total Excel Converter X. Прежний пайплайн на Interop тёк хендлами, ронял app pool и требовал полной установки Office на каждой ВМ конвертации. Теперь на этих ВМ нет ничего, кроме ExcelConverterX.exe за очередью. Задержка конвертации упала примерно с 12 секунд на книгу до 1.5 секунды, и строка лицензий Office исчезла. Интеграция с .NET-воркером заняла полдня."
Mateusz K.
Senior Backend Developer at a fintech
"Наши клиенты загружают зарплатные таблицы во всех вариациях: вендорские шаблоны в XLS, современный XLSX с макросами, изредка ODS от пользователей LibreOffice. Total Excel Converter X нормализует всё в единый архивный профиль PDF с шифрованием AES-256 и проставляет флаги разрешений, которые нужны нам для комплаенса. Файл-очередь -list плюс детальные логи -verbosity сразу попадают в наш агрегатор логов. Headless на Windows Server Core, без Office, без сюрпризов."
Sofia L.
DevOps Engineer at a payroll SaaS
"Мы предоставляем XLSX-в-JSON как сервис нашим ETL-клиентам. Total Excel Converter X — движок за этим эндпоинтом. -FirstRowIsHeader и прямой вывод JSON означают, что нам не пришлось писать собственный парсер или поддерживать отдельный шаг CSV-в-JSON. Пять лет пропускной способности на тысячах конвертаций в день, без отказов, в которых можно было бы винить конвертер. CLI стабилен, а вывод бит-в-бит идентичен от запуска к запуску."
Hamid Y.
CTO at an ETL platform vendor
"Встроили Total Excel Converter X в наш отчётный продукт по Royalty-Free License. Единоразовая оплата за проект оказалась долей того, что Aspose-Cells просил по подписке на разработчика. Наш инсталлятор поставляет и регистрирует ActiveX, наше приложение вызывает его напрямую, конечные пользователи видят только наш UI. Ограничение в 32 бита ActiveX стоило нам пары дней переделки пайплайна, но поддержка отвечала быстро, когда мы спрашивали про обходные пути."
Britt N.
Independent Software Vendor
"Брокеры загружают экспорты объявлений в XLSX со встроенными фотографиями и объединёнными ячейками, а нам нужен чистый PDF для публичного портала. Total Excel Converter X справляется с особенностями рендеринга (объединённые ячейки, закреплённые области, именованные диапазоны) лучше, чем open-source библиотеки, которые мы тестировали. Объединение десяти книг в один ежемесячный PDF через -combine -sort name — функция, которой мы пользуемся в каждом релиз-цикле."
Daichi T.
Lead .NET Developer at a real-estate platform
Разработчики и ИТ-команды, конвертирующие файлы Excel в PDF, DOC, CSV и другие форматы на серверах
Добавление конвертации Excel в PDF в ваше веб-приложение через ActiveX
Веб-разработчики интегрируют Total Excel ConverterX в приложения ASP, PHP или .NET, чтобы пользователи могли загружать файлы Excel и мгновенно получать сконвертированный PDF, HTML или CSV. Конвертер работает незаметно на сервере без интерфейса, обслуживая нескольких одновременных пользователей без перебоев.
Автоматическая конвертация Excel-экспортов из бизнес-систем
Корпоративные ИТ-команды планируют Total Excel ConverterX для обработки ночных экспортов XLS и XLSX из ERP, CRM и BI-платформ. Конвертируйте финансовые отчёты в защищённый PDF, извлекайте данные в CSV для баз данных или преобразуйте таблицы в HTML для внутренних дашбордов — всё без участия оператора через командную строку.
Автоматическая конвертация новых файлов Excel по мере их поступления в папки
В паре с Total Folder Monitor, Total Excel ConverterX отслеживает заданные папки и автоматически конвертирует новые XLS-файлы по мере их появления. Входящие таблицы из загрузок партнёров, FTP-сбросов или автоматических экспортов конвертируются в нужный формат и направляются в нужное место без участия оператора.
Предоставление конвертации Excel всем пользователям локальной сети
Организации разворачивают Total Excel ConverterX как общий сервис в корпоративной сети. Сотрудники из финансового, коммерческого и операционного отделов отправляют файлы Excel для конвертации в PDF, DOC или CSV через централизованный сервер — без необходимости устанавливать настольные конвертеры на каждой рабочей станции.
Встраивание конвертации таблиц в ваше собственное ПО
Разработчики ПО встраивают Total Excel ConverterX в свои продукты для добавления функций экспорта Excel. Интерфейс ActiveX предоставляет функции конвертации через простые вызовы API — конвертируйте XLS, XLSX, ODS и DBF в PDF, HTML, CSV, SQL, LaTeX и более 15 других форматов из любого COM-совместимого приложения.
Total Excel ConverterX поставляется с ExcelConverterX.exe — консольной программой, которую можно запускать из скриптов, планировщика задач, CI-раннеров или любого серверного сервиса. Набор флагов соответствует GUI-версии ExcelConverter.exe; полный справочник смотрите в документации командной строки. Приведённые ниже рецепты охватывают сценарии, о которых чаще всего спрашивают клиенты SDK.
Минимально возможный вызов — один исходный файл, один вывод, один целевой формат.
ExcelConverterX.exe "C:\reports\Q4-financials.xlsx" "C:\out\Q4-financials.pdf" -cPDF
Обработайте каждую книгу в папке и положите PDF в соседнюю папку вывода. Замените маску на *.xls, *.ods или *.csv, чтобы выбрать другой исходный формат.
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cPDF
Большинству пайплайнов данных нужен CSV, но редко с обычной запятой. Используйте -td, чтобы выбрать из стандартных разделителей (Tab, Space, Semicolon, Comma), или -td Other -tdo, чтобы задать что-то другое — здесь символ вертикальной черты.
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cCSV -td Other -tdo "|" -FirstRowIsHeader -UseQuote
-FirstRowIsHeader говорит конвертеру трактовать строку 1 как имена столбцов; -UseQuote оборачивает текстовые поля в кавычки, чтобы встроенные разделители не ломали парсинг.
Чтобы скармливать данные книги в REST-эндпоинт или ETL-задание, выводите сразу в структурированный формат, а не идите через CSV.
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cJSON -FirstRowIsHeader
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cXML -FirstRowIsHeader
Множество бухгалтерских и ERP-инструментов до сих пор потребляют DBF-таблицы. Конвертер пишет валидные dBase-файлы прямо из книги.
ExcelConverterX.exe "C:\reports\customers.xlsx" "C:\out\customers.dbf" -cDBF -FirstRowIsHeader
По умолчанию каждый видимый лист становится отдельным выходным файлом. -sheets выбирает только названные вами листы; -cs объединяет их в один документ; -ExportAll включает скрытые листы.
ExcelConverterX.exe "C:\reports\workbook.xlsx" "C:\out\summary.pdf" -cPDF -sheets "Summary;Q4;Forecast" -cs
Месячная отчётность часто означает сшивание десяти-двадцати книг в одну поставку. -combine сливает их в один PDF в порядке исходных файлов; -sort name управляет этим порядком.
ExcelConverterX.exe "C:\reports\monthly\*.xlsx" "C:\out\monthly-pack.pdf" -cPDF -combine -sort name
Когда книги лежат во вложенных папках клиентов, -Recurse обходит подкаталоги, а -kfs воссоздаёт ту же структуру на стороне вывода вместо того, чтобы сваливать всё в одну корзину.
ExcelConverterX.exe "C:\clients\*.xlsx" "C:\out\clients\" -cPDF -Recurse -kfs
Стандарт для отправки финансовых отчётов внешним получателям: пароль владельца блокирует права на редактирование/печать, пароль пользователя ограничивает открытие файла, а шифрование AES-256 делает его надёжным.
ExcelConverterX.exe "C:\reports\*.xlsx" "C:\out\" -cPDF -mp "owner-pwd" -up "user-pwd" -perm Print -EncryptStrength es256AES
Замените Print любой комбинацией Copy, Modify, Annotation, FormFill, HighResPrint, чтобы предоставить именно те права, которые вы хотите. Добавьте -Pass "wb-pwd" впереди, если сама исходная книга защищена паролем.
Когда воркер пишет файл-очередь, а конвертер его разбирает, не нужно зашивать пути к файлам в саму командную строку. -list читает маски файлов (по одной на строку) из текстового файла; -verbosity detail пишет по строке на файл; -logmode append сохраняет историю между запусками.
ExcelConverterX.exe -list "C:\queues\batch.txt" "C:\out\" -cPDF -log "C:\logs\xlsxconv.log" -verbosity detail -logmode append
Обновлено Thu, 11 Jun 2026
(только $550.00)
new COM("ExcelConverter.ExcelConverterX") в PHP, new ExcelConverterX() в .NET, win32com.client.Dispatch в Python, WIN32OLE.new в Ruby. Кроме того, консольный бинарник ExcelConverterX.exe можно вызвать из любого процесса, планировщика или shell-скрипта. Также доступен прямой вывод PDF в поток через ConvertToStream для веб-ответов ASP/PHP.-mp "owner-pwd" для пароля владельца и -up "user-pwd" для ограничения открытия файла. Флаг -perm принимает любую комбинацию из Print, HighResPrint, Copy, Modify, Annotation, FormFill. Стойкость шифрования задаётся через -EncryptStrength es256AES. Если сама исходная книга защищена паролем, передайте -Pass "workbook-pwd" заранее, чтобы конвертер смог её открыть.-sheets "Summary;Q4;Forecast", чтобы выбрать листы по имени из книги. Добавьте -cs, чтобы объединить выбранные листы в один документ, или -ExportAll, чтобы включить и скрытые листы. Чтобы слить несколько книг в один PDF в порядке исходных файлов, запустите -combine -sort name по маске папки. -Recurse обходит подкаталоги, а -kfs зеркалирует структуру папок на стороне вывода вместо схлопывания всего в одну папку..md в качестве выходного формата, и конвертер запишет GitHub-Flavored Markdown: каждый лист становится GFM-таблицей с сохранёнными многострочными заголовками, объединёнными ячейками и двуязычными подписями колонок. YAML-фронтматтер несёт source_file, MIME format, число листов, число строк/колонок, определённые языки, generator и бинарный хэш для provenance. Иерархия книги (книга → листы → именованные диапазоны → полосы заголовков) разворачивается в Markdown-заголовки # / ## / ###, поэтому RAG-сплиттеры режут по семантическим границам, а не посреди таблицы. Это часть CoolUtils RAG Adapter — тот же Markdown-контракт разделяют все продукты Total Converter X.=qty*unit_price) рядом с исходными координатами ячеек (of:=[.C5]*[.D5]), bounding-прямоугольники по листам, binary_hash для provenance и массив chunks_hint, который читает ваш сплиттер. Включается флагом -Docling в командной строке. JSON независим от Markdown — можно отправить в индекс оба файла или ограничиться только .md..md — это обычный GFM с YAML-фронтматтером, поэтому его напрямую читают UnstructuredMarkdownLoader из LangChain, MarkdownReader из LlamaIndex, MarkdownToDocument из Haystack и MCP-файловые инструменты Claude Code. Для Claude, ChatGPT или любого чат-интерфейса вы можете вставить Markdown в контекст как есть — таблицы рендерятся, заголовки показывают, из какого раздела пришёл чанк, а фронтматтер даёт модели имя исходного файла и подсказки по языку. Опциональный sidecar .docling.json потребляется Docling-aware ингесторами или любым кастомным лоадером, которому нужны типизированные колонки.ExcelConverterX.exe "C:\reports\Q4.xlsx" "C:\out\" -cMD -Docling. -cMD выбирает Markdown-вывод; -Docling дополнительно пишет sidecar .docling.json. Добавьте -sheets "Summary;Q4;Forecast" для ограничения, -Recurse для обхода подкаталогов или -list "queue.txt" для автономных пайплайнов. Из COM: obj.Convert("Q4.xlsx", "Q4.md", "-cMD -Docling"). Получившийся Markdown готов к чанкованию, эмбеддингу и индексации в любом векторном хранилище.Скачайте пробную версию и конвертируйте файлы за считанные минуты.
Не требуется ни банковская карта, ни email.