Masz foldery plików XLS i XLSX, które muszą zasilić bazę danych, potok analityczny lub pulpit raportowy — a system docelowy mówi po CSV, a nie po Excelu. Otwieranie każdego skoroszytu w Excelu i klikanie Zapisz jako → CSV nie skaluje się powyżej dwóch, trzech plików i całkowicie pada na serwerze bez instalacji Excela. Total Excel Converter X konwertuje pliki Excel do CSV z wiersza poleceń, wsadowo, bez GUI i bez Microsoft Office na maszynie. Zainstaluj go na serwerze Windows, wywołaj ze skryptu lub przez ActiveX i pozwól mu działać bez nadzoru.
*.xlsx), a konwerter przetworzy każdy pasujący plik w jednym przebiegu-CSVDelimiter, dopasowane do tego, czego oczekuje Twój importer-EachSheetSeparate
(30 dni, bez e-maila)
(licencja serwerowa, wieczysta)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Pliki Excel (XLS, XLSX) to formaty kontenerowe. Skoroszyt zawiera wiele arkuszy, formuły, formatowanie, wykresy, tabele przestawne, reguły warunkowe i osadzone obiekty. XLS to zastrzeżony format binarny z lat 90.; XLSX to archiwum ZIP części XML. Oba wymagają parsera rozumiejącego schemat Office. Większość baz danych i narzędzi analitycznych nie może czytać żadnego z nich bezpośrednio.
CSV to zwykły tekst — jeden wiersz na linię, pola oddzielone separatorem. Każdy silnik bazy danych, każdy język skryptowy, każde narzędzie BI i każda platforma ETL czyta CSV bez tłumaczenia. PostgreSQL COPY, MySQL LOAD DATA INFILE, BigQuery bq load, pandas read_csv, R read.csv — wszystkie oczekują CSV. Gdy dane Excel muszą wejść do takiego potoku, najpierw muszą stać się CSV.
| Excel (XLS / XLSX) | CSV | |
|---|---|---|
| Format | Zastrzeżony binarny lub ZIP-XML | Zwykły tekst |
| Arkusze na plik | Wiele | Jedna tabela |
| Formuły | Przechowywane i przeliczane | Tylko obliczone wartości |
| Formatowanie | Czcionki, kolory, obramowania, wykresy | Brak |
| Import do bazy danych | Wymaga ODBC lub biblioteki | Natywny w każdym silniku |
| Odbiorcy | Użytkownicy Office | Bazy danych, skrypty, narzędzia ETL |
Pobierz instalator z linku powyżej i uruchom go na serwerze lub stacji roboczej Windows. Instalacja trwa mniej niż minutę. Nie wymaga instalacji Microsoft Excel ani Office — konwerter parsuje XLS i XLSX bezpośrednio z użyciem własnego silnika.
Otwórz cmd.exe lub PowerShell. Plik wykonywalny konwertera to XLSConverter.exe, znajdujący się w folderze instalacyjnym (zwykle C:\Program Files\CoolUtils\TotalExcelConverterX\). Dodaj go do systemowej zmiennej PATH lub używaj pełnej ścieżki w poleceniach.
Najprostsze polecenie konwertuje wszystkie pliki Excel w folderze do CSV:
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV
Przetwarza każdy plik .xlsx w folderze C:\Reports\ i zapisuje wynikowe pliki CSV w C:\Output\. Każdy plik Excel tworzy jeden CSV o tej samej nazwie bazowej. Użyj *.xls do konwersji starszych plików binarnych lub *.xls*, aby złapać oba rozszerzenia w jednym przebiegu.
Domyślne ustawienia CSV często wymagają podkręcenia, aby pasowały do systemu docelowego. Prawdziwe importery są wybredne co do separatorów i stron kodowych:
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV -CSVDelimiter ";" -CSVQuotation "\"" -Encoding UTF-8 -log C:\Logs\xls2csv.log
-CSVDelimiter "," — przecinek (domyślnie). Użyj ";" dla locale europejskich, "\t" dla oddzielonego tabulatorami lub "|" dla pionowej kreski-CSVQuotation "\"" — zawijaj pola zawierające separator, cudzysłowy lub podziały wiersza w cudzysłowy-Encoding UTF-8 — wymuś wyjście UTF-8. Użyj UTF-16, Windows-1251, Windows-1252 lub ISO-8859-1 w zależności od wymagań systemu docelowego-EachSheetSeparate — podziel skoroszyt wieloarkuszowy na jeden CSV na arkusz, nazwany {file}_{sheet}.csv-log C:\Logs\xls2csv.log — zapisz dziennik konwersji do weryfikacjiZapisz polecenie w pliku .bat i zaplanuj je za pomocą Harmonogramu zadań systemu 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
Uruchamia konwersję każdej nocy (lub z dowolną częstotliwością) i zapisuje plik dziennika, dzięki czemu można zweryfikować wyniki. Wrzuć nowe pliki XLSX do C:\Incoming\, a kolejny zaplanowany przebieg je podejmie.
Total Excel Converter X zawiera pełny interfejs ActiveX. Możesz wywoływać konwerter z dowolnego środowiska zgodnego z COM — .NET, VBScript, PHP, Python, Ruby lub ASP. Pozwala to osadzić konwersję Excel do CSV we własnym zadaniu ETL, formularzu wgrywania webowego lub usłudze raportowej bez uruchamiania osobnego procesu z wiersza poleceń.
Przykład (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");
Przykład (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");
To samo wywołanie działa z ASP.NET, VBScript, Python, Ruby, Perl i JavaScript (Windows Script Host). Twoja aplikacja może przyjmować przesyłane pliki XLSX i zwracać CSV gotowy do bezpośredniego pobrania do bazy danych lub narzędzia analitycznego.
| Funkcja | Konwertery online | Total Excel Converter X |
|---|---|---|
| Przetwarzanie wsadowe | Jeden plik naraz | Nieograniczona liczba plików na partię |
| Prywatność plików | Pliki wysyłane na serwer zewnętrzny | Pliki nigdy nie opuszczają Twojego komputera |
| Limit rozmiaru pliku | Zwykle 5–25 MB | Brak — obsługa skoroszytów wielogigabajtowych |
| Kontrola separatora / kodowania | Rzadka lub ukryta | Pełna kontrola przez flagi |
| Obsługa wielu arkuszy | Zwykle tylko pierwszy arkusz | -EachSheetSeparate lub połączone |
| Automatyzacja | Tylko ręcznie | Wiersz poleceń, .bat, Harmonogram zadań, ActiveX |
| Wdrożenie na serwerze | Niemożliwe | Zaprojektowany dla serwerów, bez GUI |
| Wymaga zainstalowanego Excela | nd. | Nie |
| Wymaga internetu | Tak | Nie |
COPY sales FROM '/data/sales.csv' CSV HEADER w Postgres lub LOAD DATA INFILE w MySQL. Cały potok działa w sekundach dla plików, które zajęłyby minuty przez importer GUI.bq load lub COPY INTO. Nocne zadanie .bat konwertuje raporty Excela z dnia do CSV i wgrywa je do kubełka przejściowego, skąd hurtownia je podejmuje.read_csv i R read.csv. Gdy źródłowe dane przychodzą jako XLSX z finansów lub operacji, konwerter po stronie serwera produkuje czysty CSV bez konieczności tykania Excela.-CSVDelimiter i -Encoding ustawionymi pod specyfikację agencji.Konwerter parsuje pliki XLS i XLSX bezpośrednio. Nie potrzebujesz Microsoft Office, LibreOffice ani żadnej aplikacji arkuszowej zainstalowanej na serwerze. Pozwala to uniknąć kosztów licencji i znanej niestabilności automatyzacji Excela w scenariuszach bez nadzoru.
Total Excel Converter X jest zaprojektowany do pracy bez nadzoru. Żadnych okien GUI, okien dialogowych ani monitów potwierdzenia. Działa cicho z wiersza poleceń lub jako część usługi — dokładnie tego, czego potrzebuje serwer produkcyjny.
Prawdziwe importery CSV dbają o szczegóły. Separator średnikiem dla systemów europejskich, UTF-8 dla tekstu międzynarodowego, zawijanie cudzysłowem dla pól z osadzonymi przecinkami. Skoroszyt Excel z dwunastoma miesięcznymi arkuszami to pojedynczy plik, ale CSV przechowuje jedną tabelę na plik — -EachSheetSeparate dzieli skoroszyt na dwanaście nazwanych plików CSV, każdy gotowy do osobnego pobrania. Każdy szczegół jest wystawiony jako flaga wiersza poleceń, dzięki czemu wyjście pasuje do tego, czego oczekuje Twój potok po stronie odbioru za pierwszym razem.
To samo narzędzie wiersza poleceń konwertuje Excel do PDF, DOC, HTML, XML, JSON, ODS, TIFF, JPEG i wielu innych formatów. Jedna instalacja pokrywa każdy cel konwersji Excel. Zmień -c CSV na -c PDF, a otrzymasz raporty PDF z tymi samymi funkcjami wsadowymi i automatyzacji.
(30 dni, bez e-maila i karty kredytowej)
(licencja serwerowa, wieczysta)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"Nasz potok pobiera ponad 200 plików XLSX dziennie od regionalnych menedżerów sklepów i ładuje je do Postgres przez COPY. Zastąpiliśmy kruchy skrypt Python plus openpyxl XLSConverter.exe w zadaniu .bat. Separator średnikiem i flagi UTF-8 rozwiązały nasze problemy z niemieckimi i polskimi znakami za pierwszym uruchomieniem. Przepustowość spadła z czterdziestu minut do poniżej pięciu dla tej samej nocnej partii."
Priya Raghavan Data Engineer, Retail Analytics
"Karmimy miesięczne skoroszyty Excel do BigQuery dla pulpitu wykonawczego. Flaga -EachSheetSeparate była brakującym elementem — jeden CSV na arkusz mapuje się czysto do jednej tabeli przejściowej na linię biznesową. Koniec z ręcznymi eksportami arkusz po arkuszu z Excela. Interfejs COM pozwala temu samemu narzędziu obsługiwać nasz wewnętrzny portal wgrywania."
Daniel Kowalski BI Analyst, Insurance Group
"Zintegrowałam XLSConverter przez klasę ActiveX z usługą .NET przetwarzającą raporty brokerskie. Ewaluacja formuł działa poprawnie nawet na większych skoroszytach z odwołaniami między arkuszami. Flaga kodowania obsługuje nasze włoskie i francuskie wejście czysto. Dokumentacja kilku rzadszych flag mogłaby być bardziej szczegółowa, ale wsparcie odpowiedziało na moje pytania w ciągu dnia roboczego."
Sofia Marchetti ETL Developer, FinTech Platform
XLSConverter.exe C:\Reports\*.xlsx C:\Output\ -c CSV. Konwertuje każdy plik XLSX w folderze źródłowym do CSV. Dodaj flagi takie jak -CSVDelimiter ";", -Encoding UTF-8 lub -EachSheetSeparate, aby kontrolować wyjście.-CSVDelimiter. Podaj "," dla przecinka (domyślnie), ";" dla średnika (częsty w locale europejskich), "\t" dla tabulatora lub "|" dla pionowej kreski. Zawijaj wartość w cudzysłowy w wierszu poleceń.-Encoding UTF-8 do polecenia. Inne obsługiwane strony kodowe to UTF-16, Windows-1251, Windows-1252, ISO-8859-1 i wiele więcej. Ustaw kodowanie tak, aby pasowało do tego, czego oczekuje Twoja baza danych lub importer, aby znaki spoza ASCII pozostały nienaruszone.-EachSheetSeparate, a konwerter wyprodukuje jeden CSV na arkusz, nazwany {file}_{sheet}.csv. Użyj tego trybu zawsze, gdy ładujesz każdy arkusz do innej tabeli bazy danych.
string src="C:\\test\\Source.xlsx";
string dest="C:\\test\\Dest.PDF";
ExcelConverterX Cnv = new ExcelConverterX();
Cnv.Convert(src, dest, "-c PDF -log c:\\test\\Excel.log");
MessageBox.Show("Convert complete!");
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 msgPath = $@"{assemblyDirectoryPath}\MSG\MSG-1.xlsx";
var outPath = Path.GetTempFileName() + ".pdf";
startInfo.FileName = executablePath;
if (File.Exists(outPath))
{
File.Delete(outPath);
}
if (File.Exists(executablePath) && File.Exists(msgPath))
{
sbLogs.AppendLine("files exists...");
}
else
sbLogs.AppendLine("EXE & MSG files NOT exists...");
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = $"{msgPath} {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"
Rresponse.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.XLS";
$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(file_path):
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.XLS"; 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;
Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.