Masz foldery skoroszytów Excel, które muszą żyć wewnątrz Microsoft Access — do zapytań SQL, złączeń między tabelami, indeksowania lub zasilania bazy raportowej. Otwieranie każdego XLSX w Access i przechodzenie przez kreator importu nie skaluje się powyżej dwóch, trzech plików. Total Excel Converter X konwertuje pliki XLS i XLSX do DBF (formatu dBase IV, który Access importuje natywnie) z wiersza poleceń, wsadowo, bez GUI i bez wymogu instalacji Microsoft Office. 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
(30 dni, bez e-maila)
(licencja serwerowa, wieczysta)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Excel to arkusz kalkulacyjny. Każdy arkusz to płaska siatka — wiersze i kolumny, z formułami i formatowaniem nałożonymi na wierzchu. Excel obsługuje do 1 048 576 wierszy na arkusz, ale nie ma natywnych złączeń, indeksowanych wyszukiwań między plikami ani wspólnego modelu transakcji. Dwaj analitycy edytujący ten sam XLSX produkują dwie rozbieżne kopie. Raportowanie z danych żyjących w trzydziestu skoroszytach oznacza pisanie łańcuchów WYSZUKAJ.PIONOWO, które łamią się w chwili przesunięcia kolumny.
Access (i każda baza danych konsumująca DBF, w tym FoxPro, OpenOffice Base i większość narzędzi BI) jest zbudowany dla danych relacyjnych. Tabele mają typowane pola, klucze główne i indeksy. Zapytania używają SQL: złączenia, agregacje, filtry, podzapytania. Jedna baza Access może przechowywać dziesiątki milionów wierszy w wielu połączonych tabelach i serwować je przez formularze i raporty. Gdy dane Excel mają napędzać taką analizę, najpierw muszą wylądować w tabeli bazy — a DBF to format, który Access importuje bez tarcia konwersyjnego.
| Excel | Access / DBF | |
|---|---|---|
| Struktura | Płaska siatka na arkusz | Typowane pola, indeksy, relacje |
| Zapytania | Formuły, WYSZUKAJ.PIONOWO | SQL z złączeniami i agregacjami |
| Skala | 1 mln wierszy na arkusz, wolny powyżej 100 tys. | Dziesiątki milionów wierszy na tabelę |
| Współbieżność | Jeden edytor naraz | Wieloosobowy z blokowaniem wierszy |
| Zastosowanie | Analiza ad-hoc | Raportowanie, ETL, potoki BI |
Pobierz instalator z linku powyżej i uruchom go na serwerze lub stacji roboczej Windows. Instalacja trwa mniej niż minutę. Nie wymaga instalacji Microsoft Office — konwerter parsuje XLS i XLSX bezpośrednio z użyciem własnego silnika, w tym formuły, daty, precyzję numeryczną i łańcuchy Unicode.
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 DBF:
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF
Przetwarza każdy plik .xlsx w folderze C:\Books\ i zapisuje wynikowe tabele DBF w C:\Output\. Każdy skoroszyt tworzy jeden DBF o tej samej nazwie bazowej, gotowy do przeciągnięcia do Access przez Dane zewnętrzne → Plik dBase.
Kontroluj, jak kolumny stają się polami DBF, za pomocą dodatkowych flag:
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF -Sheet Sheet1 -FirstRowHeader 1 -log C:\Logs\xls2dbf.log
-Sheet Sheet1 — wybierz konkretny arkusz po nazwie (lub użyj indeksu)-FirstRowHeader 1 — potraktuj wiersz 1 jako nazwy pól; konwerter sanityzuje je do prawidłowych identyfikatorów DBF-Range A1:G500 — ogranicz konwersję do konkretnego zakresu komórek-log C:\Logs\xls2dbf.log — zapisz dziennik konwersji listujący każdy plik wejściowy, plik wyjściowy, liczbę wierszy oraz ostrzeżenia o obcięciu pólZapisz 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\DBF\ -c DBF -FirstRowHeader 1 -log C:\Logs\xls2dbf.log
Uruchom je co noc lub po tym, jak zespół finansowy wrzuci swój codzienny skoroszyt do folderu przychodzącego. Pliki DBF są następnie linkowane do Access przez ODBC lub importowane jako natywne tabele, a reszta potoku raportowania działa względem prawdziwej bazy danych zamiast plątaniny arkuszy.
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 DBF we własnej usłudze ETL, portalu intranetowym lub aplikacji pobierania danych bez uruchamiania osobnego procesu z wiersza poleceń.
Przykład (C#/.NET):
XLSConverterX Cnv = new XLSConverterX();
Cnv.Convert("C:\\Books\\sales.xlsx", "C:\\Output\\sales.dbf", "-c DBF -FirstRowHeader 1 -log c:\\Logs\\xls.log");
Przykład (PHP):
$c = new COM("XLSConverter.XLSConverterX");
$c->convert("C:\\Books\\sales.xlsx", "C:\\Output\\sales.dbf", "-c DBF -FirstRowHeader 1 -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 z formularza webowego, konwertować je do DBF i łączyć wynik z Access lub ładować bezpośrednio do tabeli przejściowej SQL Server.
| Funkcja | Konwertery online | Total Excel Converter X |
|---|---|---|
| Przetwarzanie wsadowe | Jeden plik naraz | Nieograniczona liczba plików na partię |
| Prywatność plików | Skoroszyty wysyłane na serwer zewnętrzny | Pliki nigdy nie opuszczają Twojego komputera |
| Wykrywanie typów pól | Wszystko staje się Character | Numeric, Date, Logical, Character wnioskowane |
| Wybór arkusza | Tylko pierwszy arkusz | Dowolny arkusz po nazwie lub indeksie |
| Limit wierszy | Często ograniczony do 10 tys.–50 tys. | Brak sztucznego limitu |
| 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 |
Konwerter czyta XLS i XLSX bezpośrednio i zapisuje tabele DBF bez Microsoft Excel, LibreOffice ani żadnej aplikacji arkuszowej zainstalowanej. Pozwala to uniknąć licencjonowania Office na serwer i znanej niestabilności automatyzacji Excela w scenariuszach bez nadzoru.
Liczby pozostają numeryczne, daty pozostają polami Date, flagi prawda/fałsz stają się Logical, tekst staje się Character o odpowiedniej szerokości. Access importuje wynik jako poprawnie typowaną tabelę, którą możesz indeksować, łączyć i odpytywać natychmiast — bez kroku konwersji po imporcie.
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 host ETL lub serwer pobierania danych.
To samo narzędzie wiersza poleceń konwertuje Excel do CSV, JSON, XML, SQL, PDF, HTML, ODS i wielu innych formatów. Jedna instalacja pokrywa pełny potok Excel-do-bazy i Excel-do-dokumentu. Zmień -c DBF na -c SQL, a otrzymasz skrypt instrukcji INSERT gotowy do załadowania do MySQL, PostgreSQL lub SQL Server 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
"Nasze przychodnie przesyłają cotygodniowe dane wykorzystania w XLSX. Ładowanie ich do Access przez kreator importu zjadało dwie godziny w każdy poniedziałek. Teraz uruchamiamy XLSConverter.exe z zaplanowanego .bat na udziale SMB, a połączone tabele DBF odświeżają się automatycznie. Typy pól przechodzą poprawnie, w tym kolumny dat, które kreator Access wcześniej kaleczył. Dwie godziny tygodniowo z powrotem i zero ręcznych dotknięć."
Linnea Ostberg Database Administrator, Regional Health Network
"Musieliśmy zmigrować piętnaście lat arkuszy dyspozytorskich do jednej bazy Access do analizy trendów. Total Excel Converter X obsłużył całe archiwum w jednej partii — około 4200 skoroszytów — przez długi weekend. Plik dziennika oznaczył garść plików ze złymi wierszami nagłówkowymi, a reszta wylądowała w Access z właściwymi polami Numeric i Date. Bije alternatywę w postaci ręcznego importu lub jednorazowego skryptu Python, którego nikt inny nie umie utrzymać."
Daniel Petrescu Reporting Analyst, Logistics Co.
"Osadzamy XLSConverter przez interfejs COM w naszej usłudze pobierania. Klienci wgrywają karty stawek Excel przez portal; usługa konwertuje je do DBF i linkuje wynik do naszej przejściowej bazy Access do walidacji przed promowaniem do SQL Server. Wywołanie ActiveX jest szybkie i przewidywalne. Wybór arkusza i FirstRowHeader pokrywają prawie każdy szablon klienta; kilka przypadków brzegowych wymagało wstępnego przetwarzania po naszej stronie, ale wsparcie było responsywne, gdy zapytaliśmy."
Aiyana Holloway ETL Developer, Insurance SaaS
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF. Konwertuje każdy skoroszyt Excel w folderze źródłowym do tabeli DBF, którą Access importuje natywnie przez Dane zewnętrzne → Plik dBase. Dodaj -FirstRowHeader 1, aby użyć wiersza 1 jako nazw pól, oraz -Sheet, aby wybrać konkretny arkusz.-FirstRowHeader 1 pierwszy wiersz dostarcza nazw pól, sanityzowanych do prawidłowych identyfikatorów DBF (maks. 10 znaków, bez spacji).-Sheet SheetName, aby skonwertować konkretny arkusz, lub uruchom konwerter raz na arkusz, aby wyprodukować jeden DBF na arkusz. Każdy DBF można następnie zaimportować jako osobną tabelę w Access, co pozwala łączyć arkusze, które wcześniej żyły w jednym skoroszycie.
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;
Pobierz wersję próbną i konwertuj pliki w kilka minut.
Nie jest wymagana karta kredytowa ani e-mail.