У вас есть папки с XLS- и XLSX-файлами, которые должны питать базу данных, аналитический пайплайн или отчётный дашборд — и целевая система говорит на CSV, а не на Excel. Открывать каждую книгу в Excel и нажимать Сохранить как → CSV не масштабируется дальше двух-трёх файлов и полностью разваливается на сервере без установленного Excel. Total Excel Converter X конвертирует Excel-файлы в CSV из командной строки, пакетно, без графического интерфейса и без Microsoft Office на машине. Установите его на сервер Windows, вызывайте из скрипта или через ActiveX, и он будет работать автоматически.
*.xlsx), и конвертер обработает все подходящие файлы за один запуск-CSVDelimiter, под то, что ожидает ваш импортёр-EachSheetSeparate
(30 дней, без email)
(серверная лицензия, бессрочная)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Excel-файлы (XLS, XLSX) — это контейнерные форматы. Книга содержит несколько листов, формулы, форматирование, диаграммы, сводные таблицы, условные правила и встроенные объекты. XLS — проприетарный двоичный формат из 1990-х; XLSX — ZIP-архив XML-частей. Оба требуют парсер, понимающий схему Office. Большинство баз данных и аналитических инструментов не могут читать ни один из них напрямую.
CSV — это чистый текст: одна строка на запись, поля разделены разделителем. Каждый движок БД, каждый скриптовой язык, каждый BI-инструмент и каждая ETL-платформа читает CSV без преобразования. PostgreSQL COPY, MySQL LOAD DATA INFILE, BigQuery bq load, pandas read_csv, R read.csv — все они ожидают CSV. Когда данные Excel должны попасть в этот пайплайн, они должны сначала стать CSV.
| Excel (XLS / XLSX) | CSV | |
|---|---|---|
| Формат | Проприетарный двоичный или ZIP-XML | Чистый текст |
| Листов на файл | Несколько | Одна таблица |
| Формулы | Хранятся и пересчитываются | Только вычисленные значения |
| Форматирование | Шрифты, цвета, границы, диаграммы | Нет |
| Импорт в БД | Требует ODBC или библиотеку | Нативный в каждом движке |
| Аудитория | Пользователи Office | БД, скрипты, ETL-инструменты |
Скачайте установщик по ссылке выше и запустите его на вашем сервере или рабочей станции Windows. Установка занимает меньше минуты. Установка Microsoft Excel или Office не требуется — конвертер разбирает XLS и XLSX напрямую с помощью собственного движка.
Откройте cmd.exe или PowerShell. Исполняемый файл конвертера — XLSConverter.exe, расположенный в папке установки (обычно C:\Program Files\CoolUtils\TotalExcelConverterX\). Добавьте его в системную переменную PATH или используйте полный путь в командах.
Простейшая команда конвертирует все Excel-файлы в папке в CSV:
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV
Эта команда обрабатывает каждый файл .xlsx в папке C:\Reports\ и сохраняет полученные CSV-файлы в C:\Output\. Каждый Excel-файл создаёт один CSV с тем же базовым именем. Используйте *.xls, чтобы конвертировать устаревшие двоичные файлы, или *.xls*, чтобы захватить оба расширения за один проход.
Значения CSV по умолчанию часто требуют настройки под целевую систему. Настоящие импортёры придирчивы к разделителям и кодовым страницам:
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV -CSVDelimiter ";" -CSVQuotation "\"" -Encoding UTF-8 -log C:\Logs\xls2csv.log
-CSVDelimiter "," — запятая (по умолчанию). Используйте ";" для европейских локалей, "\t" для табуляции или "|" для вертикальной черты-CSVQuotation "\"" — оборачивает поля, содержащие разделитель, кавычки или переносы строк, в двойные кавычки-Encoding UTF-8 — принудительно UTF-8 на выходе. Используйте UTF-16, Windows-1251, Windows-1252 или ISO-8859-1 в зависимости от требований целевой системы-EachSheetSeparate — разделить многолистовую книгу в один CSV на лист, именуемый {file}_{sheet}.csv-log C:\Logs\xls2csv.log — записать лог конвертации для проверкиСохраните команду в файле .bat и запланируйте его через Планировщик задач Windows:
@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
Эта команда запускает конвертацию каждую ночь (или с любым заданным интервалом) и записывает лог-файл, чтобы вы могли проверить результаты. Складывайте новые XLSX-файлы в C:\Incoming\, и следующий запланированный запуск их подберёт.
Total Excel Converter X включает полный интерфейс ActiveX. Вы можете вызывать конвертер из любой COM-совместимой среды — .NET, VBScript, PHP, Python, Ruby или ASP. Это позволяет встроить конвертацию Excel в CSV в вашу ETL-задачу, форму веб-загрузки или сервис отчётности без запуска командной строки.
Пример (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");
Пример (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");
Тот же вызов работает из ASP.NET, VBScript, Python, Ruby, Perl и JavaScript (Windows Script Host). Ваше приложение может принимать загруженные XLSX-файлы и возвращать CSV, готовый для прямой загрузки в базу данных или аналитический инструмент.
| Функция | Онлайн-конвертеры | Total Excel Converter X |
|---|---|---|
| Пакетная обработка | По одному файлу за раз | Неограниченное количество файлов за раз |
| Конфиденциальность файлов | Файлы загружаются на сторонний сервер | Файлы не покидают ваш компьютер |
| Лимит размера файла | Обычно 5–25 МБ | Нет — поддерживаются книги в гигабайт |
| Управление разделителем / кодировкой | Редко или скрыто | Полный контроль через флаги |
| Обработка многолистовости | Обычно только первый лист | -EachSheetSeparate или объединение |
| Автоматизация | Только вручную | Командная строка, .bat, Планировщик задач, ActiveX |
| Серверное развёртывание | Невозможно | Разработан для серверов, GUI не требуется |
| Требуется установленный Excel | Не применимо | Нет |
| Требуется интернет | Да | Нет |
COPY sales FROM '/data/sales.csv' CSV HEADER в Postgres или LOAD DATA INFILE в MySQL. Весь пайплайн отрабатывает за секунды для файлов, которые потребовали бы минут через GUI-импортёр.bq load или COPY INTO. Ночное .bat-задание конвертирует Excel-отчёты дня в CSV и загружает их в промежуточный бакет, чтобы хранилище их подобрало.read_csv и R read.csv. Когда исходные данные приходят как XLSX из финансов или операций, серверный конвертер выдаёт чистый CSV без чьего-либо касания Excel.-CSVDelimiter и -Encoding, установленными под спецификацию агентства.Конвертер разбирает XLS- и XLSX-файлы напрямую. Вам не нужны Microsoft Office, LibreOffice или какое-либо табличное приложение, установленное на сервере. Это позволяет избежать расходов на лицензии и хорошо известной нестабильности автоматизации Excel в автоматических сценариях.
Total Excel Converter X разработан для автоматической работы. Никаких окон GUI, диалоговых окон, запросов подтверждения. Он работает тихо из командной строки или как часть сервиса — именно то, что нужно серверу в продакшене.
Настоящие CSV-импортёры заботятся о деталях. Разделитель точка с запятой для европейских систем, UTF-8 для международного текста, оборачивание двойными кавычками для полей со встроенными запятыми. Книга Excel с двенадцатью месячными листами — это один файл, но CSV хранит одну таблицу на файл — -EachSheetSeparate разделяет книгу на двенадцать именованных CSV-файлов, каждый готов к отдельной загрузке. Каждая деталь выставлена как флаг командной строки, чтобы вывод соответствовал тому, что ожидает ваш дальнейший пайплайн, с первой попытки.
Тот же инструмент командной строки конвертирует Excel в PDF, DOC, HTML, XML, JSON, ODS, TIFF, JPEG и другие форматы. Одна установка покрывает каждую цель конвертации Excel. Замените -c CSV на -c PDF, и вы получите PDF-отчёты с теми же функциями пакетной обработки и автоматизации.
(30 дней, без email и кредитной карты)
(серверная лицензия, бессрочная)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Наш пайплайн поглощает 200+ XLSX-файлов в день от региональных менеджеров магазинов и загружает их в Postgres через COPY. Мы заменили хрупкий скрипт на Python плюс openpyxl на XLSConverter.exe в .bat-задаче. Разделитель точка с запятой и флаги UTF-8 решили наши проблемы с немецкими и польскими символами с первого запуска. Пропускная способность выросла с сорока минут до меньше пяти на тот же ночной пакет."
Priya Raghavan Data Engineer, Retail Analytics
"Мы подаём ежемесячные книги Excel в BigQuery для исполнительного дашборда. Флаг -EachSheetSeparate был недостающим звеном — один CSV на лист чисто отображается в одну промежуточную таблицу на бизнес-линию. Никаких больше ручных полистовых выгрузок из Excel. COM-интерфейс позволяет тому же инструменту обслуживать наш внутренний портал загрузки."
Daniel Kowalski BI Analyst, Insurance Group
"Я интегрировала XLSConverter через ActiveX-класс в .NET-сервис, обрабатывающий брокерские отчёты. Вычисление формул работает корректно даже на больших книгах со ссылками между листами. Флаг кодировки чисто обрабатывает наш итальянский и французский ввод. Документация по нескольким редким флагам могла бы быть подробнее, но поддержка отвечала на мои вопросы в течение рабочего дня."
Sofia Marchetti ETL Developer, FinTech Platform
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV. Она конвертирует все XLSX-файлы в исходной папке в CSV. Добавьте флаги -CSVDelimiter ";", -Encoding UTF-8 или -EachSheetSeparate для управления выводом.-CSVDelimiter. Передайте "," для запятой (по умолчанию), ";" для точки с запятой (часто в европейских локалях), "\t" для табуляции или "|" для вертикальной черты. Оборачивайте значение в двойные кавычки в командной строке.-Encoding UTF-8 к команде. Другие поддерживаемые кодовые страницы включают UTF-16, Windows-1251, Windows-1252, ISO-8859-1 и многие другие. Установите кодировку под то, что ожидает ваша БД или импортёр, чтобы не-ASCII символы пережили без потерь.-EachSheetSeparate, и конвертер выдаст один CSV на лист, именуемый {file}_{sheet}.csv. Используйте этот режим всегда, когда загружаете каждый лист в отдельную таблицу БД.
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;
Скачайте пробную версию и конвертируйте файлы за считанные минуты.
Не требуется ни банковская карта, ни email.