Masz foldery ze skoroszytami Excela, które muszą zasilić usługę sieciową SOAP, partnera EDI, zgłoszenie regulacyjne lub integrację ERP — a system odbierający mówi w XML, nie w XLSX. Otwieranie każdego pliku w Excelu i ręczne zapisywanie go jako XML przestaje działać po drugim skoroszycie, a wbudowany eksport XML w Excelu ignoruje wymagania schematu, które system docelowy faktycznie sprawdza. Total Excel Converter X konwertuje pliki XLS i XLSX do poprawnego XML z wiersza poleceń, wsadowo, bez GUI i bez wymogu instalacji Microsoft Excel. 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 skoroszyt w jednym przebiegu
(30 dni, bez e-maila)
(licencja serwerowa, wieczysta)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Excel to siatka. Wiersze i kolumny przechowują wartości, a znaczenie każdej kolumny żyje w wierszu nagłówkowym, który odczytują ludzie. Format jest doskonały dla analityków, fatalny dla integracji systemowej. Usługi SOAP, bramki EDI, portale regulacyjne, interfejsy bankowe i komunikaty HL7 w opiece zdrowotnej nie parsują XLSX. Oczekują XML z jawnymi nazwami elementów, zdefiniowanym zagnieżdżeniem i przewidywalnymi regułami eskejpowania.
XML jest hierarchiczny i samoopisujący się. Każda wartość nosi nazwę elementu, dokument waliduje się względem schematu, a dowolna platforma — Linux, Java, .NET, mainframe IBM — może go sparsować bez bibliotek zastrzeżonych. Gdy dane z Excela muszą wejść do tego świata, najpierw muszą stać się XML. Total Excel Converter X zapisuje poprawny XML, w którym każdy wiersz Excela zamienia się w węzeł rekordu, wiersz nagłówkowy dostarcza nazwy pól, a znaki specjalne są eskejpowane, dzięki czemu wyjście czysto przechodzi przez dowolny parser XML.
| Excel (XLS/XLSX) | XML | |
|---|---|---|
| Kształt | Dwuwymiarowa siatka | Hierarchiczne drzewo |
| Nazwy pól | Niejawne (wiersz nagłówkowy) | Jawne na każdym rekordzie |
| Walidacja | Brak na poziomie pliku | Schemat (XSD, DTD) |
| Odbiorcy | Ludzie, narzędzia świadome Excela | SOAP, EDI, ERP, HL7, regulatorzy |
| Wieloplatformowość | Najlepiej w Windows + Office | Uniwersalny — każdy język i system |
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 — konwerter czyta XLS i XLSX bezpośrednio własnym parserem, włącznie z formułami, stylami i skoroszytami wieloarkuszowymi.
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 Excela w folderze do XML:
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML
Przetwarza każdy plik .xlsx w folderze C:\Sheets\ i zapisuje wynikowe pliki XML w C:\Output\. Każdy skoroszyt tworzy jeden plik XML o tej samej nazwie bazowej. Każdy wiersz w źródle staje się elementem <Row>, a każda komórka staje się elementem podrzędnym o nazwie odpowiadającego nagłówka kolumny.
Kontroluj wyjście XML za pomocą dodatkowych flag:
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML -Encoding UTF-8 -FirstRowAsHeader true -log C:\Logs\xls2xml.log
-Encoding UTF-8 — ustaw kodowanie XML (UTF-8, UTF-16, Windows-1252, ISO-8859-1)-FirstRowAsHeader true — użyj wiersza 1 jako nazw elementów zamiast ogólnych Column1, Column2-Sheet "Invoices" — konwertuj tylko nazwany arkusz zamiast każdego-log C:\Logs\xls2xml.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\XML\ -c XML -Encoding UTF-8 -FirstRowAsHeader true -log C:\Logs\xls2xml.log
Uruchamia konwersję każdej nocy (lub z dowolną częstotliwością) i zapisuje plik dziennika, aby można było zweryfikować wyniki. Wrzucaj nowe skoroszyty do C:\Incoming\ w ciągu dnia, a potok integracyjny odbierze je automatycznie.
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 XML we własnej aplikacji webowej, brokerze integracji lub procesie dokumentowym bez uruchamiania osobnego procesu z wiersza poleceń.
Przykład (C#/.NET):
XLSConverterX Cnv = new XLSConverterX();
Cnv.Convert("C:\\Sheets\\invoices.xlsx", "C:\\Output\\invoices.xml", "-c XML -Encoding UTF-8 -FirstRowAsHeader true -log c:\\Logs\\xls.log");
Przykład (PHP):
$c = new COM("XLSConverter.XLSConverterX");
$c->convert("C:\\Sheets\\invoices.xlsx", "C:\\Output\\invoices.xml", "-c XML -Encoding UTF-8 -FirstRowAsHeader true -log c:\\Logs\\xls.log");
To samo wywołanie działa z ASP.NET, VBScript, Python, Ruby, Perl i JavaScript (Windows Script Host). Twoja warstwa integracyjna może przyjmować przesyłane pliki Excela, konwertować je do XML w pamięci i przekazywać ładunek XML bezpośrednio do punktu końcowego SOAP albo kolejki ERP.
| Funkcja | Konwertery online | Total Excel Converter X |
|---|---|---|
| Przetwarzanie wsadowe | Jeden plik naraz | Nieograniczona liczba plików na partię |
| Prywatność danych | Skoroszyty wysyłane na serwer zewnętrzny | Pliki nigdy nie opuszczają Twojego komputera |
| Kontrola kodowania | Tylko UTF-8, często zepsute | UTF-8, UTF-16, Windows-1252, ISO-8859-1 |
| Eskejpowanie znaków specjalnych | Niespójne, często niepoprawne XML | Pełne eskejpowanie dla &, <, >, ", znaków sterujących |
| Skoroszyty wieloarkuszowe | Tylko pierwszy arkusz | Wszystkie arkusze lub nazwany arkusz |
| 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 |
Konwerter czyta XLS i XLSX bezpośrednio własnym parserem. 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 to, czego potrzebuje produkcyjny serwer integracyjny.
Wyjście to dobrze sformowany XML. Ampersandy stają się &, nawiasy ostre stają się < i >, cudzysłowy wewnątrz atrybutów są eskejpowane, a zbłąkane znaki sterujące są usuwane. XML przechodzi przez dowolny parser zgodny ze standardem bez zadławienia się nazwą klienta zawierającą przypadkowy ampersand.
To samo narzędzie wiersza poleceń konwertuje Excela do PDF, DOC, HTML, CSV, JSON, ODS, TXT i wielu innych formatów. Jedna instalacja pokrywa wszystkie potrzeby konwersji arkuszy. Zmień -c XML na -c JSON, a otrzymasz wyjście JSON 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 partner spedycyjny akceptuje zamówienia zakupu wyłącznie jako XML przez SOAP, ale zespół operacyjny buduje je w Excelu. Total Excel Converter X działa jako zaplanowany .bat na serwerze integracyjnym i zamienia codzienny skoroszyt zamówień w XML w mniej niż trzy sekundy. Eskejpowanie obsługuje znaki specjalne w nazwach klientów, które łamały nasz poprzedni własny parser. Idealne zastępstwo dla domowego skryptu VBA, którego nikt nie chciał utrzymywać."
Andreas Vogt Integration Engineer, Logistik AG
"Wymieniamy dokumenty EDI z około czterdziestoma partnerami detalicznymi, a jedna trzecia z nich chce kopert XML zamiast X12 albo EDIFACT. Konwerter siedzi między naszym opartym na arkuszach biurkiem zamówień a bramką EDI. Mapowanie wiersza nagłówkowego sprawia, że schemat XML każdego partnera dopasowuje się do nazw kolumn, których już używamy. Kodowanie ustawiamy per partner z wiersza poleceń. Żadnych niespodzianek w produkcji."
Priya Subramanian EDI Specialist, Wholesale Distribution
"Składamy raporty regulacyjne do banku centralnego w XML w cyklu tygodniowym. Dane źródłowe są uzgadniane w Excelu przez zespół finansowy, a następnie muszą stać się ściśle zakodowanym ładunkiem XML. Wyjście UTF-8 i czyste eskejpowanie ampersandów przechodzi walidator regulatora za pierwszym razem. Wciąż przepuszczamy wyjście przez XSLT, aby pasowało do dokładnego schematu docelowego, ale sam krok konwersji jest niezawodny i szybki."
Marc Lefevre Regulatory Reporting Lead, Banque Mutuelle
XLSConverter.exe C:\Sheets\*.xlsx C:\Output\ -c XML. Konwertuje to każdy skoroszyt Excela w folderze źródłowym do XML. Dodaj flagi takie jak -Encoding UTF-8, -FirstRowAsHeader true lub -log, aby kontrolować strukturę i kodowanie wyjścia.-FirstRowAsHeader true, a konwerter użyje każdego nagłówka kolumny jako nazwy elementu dla danego pola, dzięki czemu kolumna CustomerName wytworzy elementy <CustomerName>. Bez tej flagi konwerter wraca do ogólnych znaczników Column1, Column2. Węzły wiersza domyślnie mają nazwę <Row>; daje to przewidywalną, regularną strukturę łatwo mapującą się na większość schematów odbiorczych.-Encoding. UTF-8 to bezpieczny domyślny wybór dla SOAP, EDI i większości nowoczesnych integracji. Użyj UTF-16, gdy system docelowy konkretnie tego wymaga, albo windowsowej strony kodowej, gdy zasilasz starszego partnera oczekującego jednobajtowego XML.&, nawiasy ostre stają się < i >, podwójne cudzysłowy wewnątrz wartości atrybutów stają się ", a zbłąkane znaki sterujące, które złamałyby parser XML 1.0, są usuwane. Wyjście waliduje się w dowolnym zgodnym ze standardem parserze bez ręcznego porządkowania.-Sheet "Invoices", aby przekonwertować tylko jeden nazwany arkusz, lub -Sheet 1, aby wybrać po indeksie zaczynającym się od zera. Ukryte arkusze i arkusze wykresów są pomijane.XLSConverter.XLSConverterX). Możesz wywoływać go z .NET, PHP, Python, VBScript, ASP, Ruby, Perl i dowolnego innego środowiska zgodnego z COM, aby konwertować przesyłane pliki Excela do XML w czasie rzeczywistym i przekazywać wynik do punktu końcowego SOAP albo kolejki komunikatów.
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.