لديك مجلدات من مصنّفات Excel تحتاج إلى أن تعيش داخل Microsoft Access — لاستعلامات SQL، والربط عبر الجداول، والفهرسة، أو تغذية قاعدة بيانات تقارير. فتح كل XLSX في Access والمشي عبر معالج الاستيراد لا يتدرّج بعد ملفين أو ثلاثة. Total Excel Converter X يُحوّل ملفات XLS وXLSX إلى DBF (تنسيق dBase IV الذي يستورده Access أصلًا) من سطر الأوامر، دفعةً، بدون واجهة رسومية وبدون الحاجة إلى تثبيت Microsoft Office. ثبّته على خادم Windows، استدعِه من سكربت أو عبر ActiveX، ودعه يعمل دون إشراف.
*.xlsx) وسيعالج المحوّل كل الملفات المطابقة في تشغيلة واحدة
(30 يومًا، بدون بريد إلكتروني)
(ترخيص خادم، دائم)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
Excel هو جدول بيانات. كل ورقة عمل شبكة مسطّحة — صفوف وأعمدة، مع صيغ وتنسيق مكدّسة في الأعلى. يتعامل Excel مع ما يصل إلى 1,048,576 صفًّا لكل ورقة، لكن لا توجد روابط أصلية، ولا عمليات بحث مفهرسة عبر الملفات، ولا نموذج معاملات مشترك. محلِّلان يحرّران نفس XLSX يُنتجان نسختين متباعدتين. التقارير على بيانات تعيش عبر ثلاثين مصنّفًا تعني كتابة سلاسل VLOOKUP تنكسر اللحظة التي يتحرّك فيها عمود.
Access (وأي قاعدة بيانات تستهلك DBF، بما في ذلك FoxPro وOpenOffice Base ومعظم أدوات BI) مبنية للبيانات العلائقية. للجداول حقول بأنواع، ومفاتيح أساسية، وفهارس. تستخدم الاستعلامات SQL: روابط، تجميعات، تصفيات، استعلامات فرعية. يمكن لقاعدة بيانات Access واحدة أن تحمل عشرات الملايين من الصفوف عبر جداول متعدّدة مرتبطة وأن تخدمها عبر النماذج والتقارير. حين تحتاج بيانات Excel إلى قيادة هذا النوع من التحليل، يجب أن تستقر في جدول قاعدة بيانات أولًا — وDBF هو التنسيق الذي يستورده Access دون احتكاك.
| Excel | Access / DBF | |
|---|---|---|
| البنية | شبكة مسطّحة لكل ورقة | حقول بأنواع، فهارس، علاقات |
| الاستعلام | الصيغ، VLOOKUP | SQL مع روابط وتجميعات |
| الحجم | مليون صف لكل ورقة، بطيء بعد 100K | عشرات الملايين من الصفوف لكل جدول |
| التزامن | محرّر واحد في كل مرة | متعدّد المستخدمين مع قفل الصفوف |
| سير العمل | تحليل مخصّص | التقارير، ETL، خطوط أنابيب BI |
نزّل المُثبِّت من الرابط أعلاه وشغّله على خادم أو محطة عمل Windows. يستغرق التثبيت أقل من دقيقة. لا حاجة لتثبيت Microsoft Office — يحلّل المحوّل XLS وXLSX مباشرةً بمحرّكه الخاص، بما في ذلك الصيغ والتواريخ والدقّة الرقمية وسلاسل Unicode.
افتح cmd.exe أو PowerShell. الملف التنفيذي للمحوّل هو XLSConverter.exe، ويقع في مجلد التثبيت (عادةً C:\Program Files\CoolUtils\TotalExcelConverterX\). أضفه إلى متغيّر PATH في النظام أو استخدم المسار الكامل في أوامرك.
أبسط أمر يُحوّل جميع ملفات Excel في مجلد إلى DBF:
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF
يُعالج هذا كل ملف .xlsx في C:\Books\ ويحفظ جداول DBF الناتجة في C:\Output\. كل مصنّف يُنتج ملف DBF واحدًا بنفس الاسم الأساسي، جاهز للسحب إلى Access عبر External Data → dBase File.
تحكّم في كيفية تحوّل الأعمدة إلى حقول DBF بعلامات إضافية:
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF -Sheet Sheet1 -FirstRowHeader 1 -log C:\Logs\xls2dbf.log
-Sheet Sheet1 — اختيار ورقة عمل محددة بالاسم (أو استخدام فهرس)-FirstRowHeader 1 — معاملة الصف 1 كأسماء حقول؛ يُعقّمها المحوّل لتصبح معرّفات DBF صالحة-Range A1:G500 — قصر التحويل على نطاق خلايا محدد-log C:\Logs\xls2dbf.log — كتابة سجل تحويل يسرد كل ملف إدخال وملف إخراج وعدد الصفوف وأي تحذيرات اقتطاع حقولاحفظ أمرك في ملف .bat وجدوِله باستخدام Windows Task Scheduler:
@echo off "C:\Program Files\CoolUtils\TotalExcelConverterX\XLSConverter.exe" C:\Incoming\*.xlsx C:\Archive\DBF\ -c DBF -FirstRowHeader 1 -log C:\Logs\xls2dbf.log
شغّله كل ليلة، أو بعد أن يُسقط فريق المالية مصنّفه اليومي في مجلد الوارد. يتم بعد ذلك ربط ملفات DBF في Access عبر ODBC أو استيرادها كجداول أصلية، ويعمل باقي خط أنابيب التقارير ضد قاعدة بيانات حقيقية بدلًا من تشابك جداول البيانات.
يتضمّن Total Excel Converter X واجهة ActiveX كاملة. يمكنك استدعاء المحوّل من أي بيئة متوافقة مع COM — .NET أو VBScript أو PHP أو Python أو Ruby أو ASP. يتيح لك ذلك دمج تحويل Excel إلى DBF في خدمة ETL الخاصة بك أو بوابة الإنترانت أو تطبيق استيعاب البيانات دون اللجوء إلى عملية سطر أوامر خارجية.
مثال (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");
مثال (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");
يعمل نفس الاستدعاء من ASP.NET وVBScript وPython وRuby وPerl وJavaScript (Windows Script Host). يمكن لتطبيقك قبول ملفات XLSX المرفوعة من نموذج ويب، وتحويلها إلى DBF، وربط النتيجة في Access أو تحميلها مباشرةً إلى جدول مرحلي في SQL Server.
| الميزة | المحوّلات عبر الإنترنت | Total Excel Converter X |
|---|---|---|
| المعالجة الدفعية | ملف واحد في كل مرة | عدد غير محدود من الملفات لكل دفعة |
| خصوصية الملفات | تُرفع المصنّفات إلى خادم طرف ثالث | الملفات لا تغادر جهازك |
| اكتشاف نوع الحقل | يصبح كل شيء Character | يُستنتج Numeric، Date، Logical، Character |
| اختيار الورقة | الورقة الأولى فقط | أي ورقة بالاسم أو الفهرس |
| حد الصفوف | غالبًا محدود بـ10K-50K صف | لا حدّ مفروض |
| الأتمتة | يدوي فقط | سطر الأوامر، .bat، Task Scheduler، ActiveX |
| النشر على الخادم | غير ممكن | مصمّم للخوادم، لا حاجة لواجهة رسومية |
| يتطلب تثبيت Excel | غير قابل للتطبيق | لا |
يقرأ المحوّل XLS وXLSX مباشرةً ويكتب جداول DBF دون Microsoft Excel أو LibreOffice أو أي تطبيق جداول بيانات مثبَّت. يتجنّب ذلك ترخيص Office لكل خادم وعدم الاستقرار المعروف لأتمتة Excel في سيناريوهات غير مُشرف عليها.
تبقى الأرقام رقمية، تبقى التواريخ حقول Date، تصبح علامات true/false Logical، يصبح النص Character بعرض مناسب. يستورد Access النتيجة كجدول بأنواع صحيحة يمكنك فهرسته وربطه والاستعلام منه فورًا — دون خطوة تحويل بعد الاستيراد.
صُمِّم Total Excel Converter X للاستخدام دون إشراف. لا نوافذ واجهة رسومية، لا مربعات حوار، لا مطالبات تأكيد. يعمل بصمت من سطر الأوامر أو كجزء من خدمة — تمامًا ما يحتاجه مضيف ETL أو خادم استيعاب البيانات.
تُحوّل أداة سطر الأوامر نفسها Excel إلى CSV وJSON وXML وSQL وPDF وHTML وODS وأكثر. تثبيت واحد يغطي خط أنابيب Excel-إلى-قاعدة-بيانات وExcel-إلى-مستند الكامل. غيّر -c DBF إلى -c SQL وستحصل على سكربت من جمل INSERT جاهزة للتحميل إلى MySQL أو PostgreSQL أو SQL Server بنفس مزايا الدفعات والأتمتة.
(30 يومًا، بدون بريد إلكتروني أو بطاقة ائتمان)
(ترخيص خادم، دائم)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"تُقدِّم عياداتنا بيانات الاستخدام الأسبوعية بصيغة XLSX. كان تحميل تلك إلى Access عبر معالج الاستيراد يأكل ساعتين كل يوم اثنين. نُشغّل الآن XLSConverter.exe من ملف .bat مجدول عبر مشاركة SMB، وتتحدّث جداول DBF المرتبطة تلقائيًا. تأتي أنواع الحقول بشكل صحيح، بما في ذلك أعمدة التواريخ التي اعتاد معالج Access على تشويهها. ساعتان مستردّة في الأسبوع، وصفر لمسات يدوية."
Linnea Ostberg Database Administrator, Regional Health Network
"احتجنا إلى ترحيل خمسة عشر عامًا من جداول بيانات الإرسال إلى قاعدة بيانات Access واحدة لتحليل الاتجاهات. تعامل Total Excel Converter X مع الأرشيف بأكمله في دفعة واحدة — حوالي 4,200 مصنّف — خلال عطلة نهاية أسبوع طويلة. أشار ملف السجل إلى حفنة الملفات التي بها صفوف رؤوس سيئة، واستقرّ الباقي في Access بحقول Numeric وDate صحيحة. أفضل من البديل المتمثل في الاستيراد اليدوي أو سكربت Python لمرة واحدة لا يستطيع أحد آخر صيانته."
Daniel Petrescu Reporting Analyst, Logistics Co.
"نُضمّن XLSConverter عبر واجهة COM في خدمة الاستيعاب لدينا. يرفع العملاء بطاقات الأسعار في Excel عبر البوابة؛ تُحوّلها الخدمة إلى DBF وتربط النتيجة في قاعدة بيانات Access المرحلية للتحقق قبل الترقية إلى SQL Server. استدعاء ActiveX سريع ويمكن التنبّؤ به. يغطّي اختيار الورقة وFirstRowHeader تقريبًا كل قالب عميل؛ احتاجت بضع حالات حدّية إلى معالجة مسبقة من جانبنا، لكن الدعم كان مستجيبًا عندما سألنا."
Aiyana Holloway ETL Developer, Insurance SaaS
XLSConverter.exe C:\Books\*.xlsx C:\Output\ -c DBF. يُحوّل هذا كل مصنّف Excel في المجلد المصدر إلى جدول DBF، يستورده Access أصلًا عبر External Data → dBase File. أضف -FirstRowHeader 1 لاستخدام الصف 1 كأسماء حقول و-Sheet لاختيار ورقة عمل محددة.-FirstRowHeader 1 يُوفّر الصف الأول أسماء الحقول، مُعقّمة لتصبح معرّفات DBF صالحة (10 أحرف بحدّ أقصى، بلا مسافات).-Sheet SheetName لتحويل ورقة محددة، أو شغّل المحوّل مرة لكل ورقة لإنتاج DBF واحد لكل ورقة عمل. يمكن بعد ذلك استيراد كل DBF كجدول منفصل في Access، مما يتيح لك الربط عبر الأوراق التي كانت تعيش سابقًا في مصنّف واحد.
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;
قم بتنزيل النسخة التجريبية المجانية وحول ملفاتك في دقائق.
لا تحتاج إلى بطاقة ائتمان أو بريد إلكتروني.