لديك مجلدات من ملفات XLS وXLSX تحتاج إلى تغذية قاعدة بيانات أو خط أنابيب تحليلات أو لوحة تقارير — ويتحدّث النظام المستهدف بـCSV، وليس Excel. فتح كل مصنّف في Excel والنقر على Save As → CSV لا يتدرّج بعد ملفين أو ثلاثة، ويتفكّك تمامًا على خادم بدون تثبيت Excel. Total Excel Converter X يُحوّل ملفات Excel إلى CSV من سطر الأوامر، دفعةً، بدون واجهة رسومية وبدون Microsoft Office على الجهاز. ثبّته على خادم Windows، استدعِه من سكربت أو عبر ActiveX، ودعه يعمل دون إشراف.
*.xlsx) وسيعالج المحوّل كل الملفات المطابقة في تشغيلة واحدة-CSVDelimiter، مطابقًا لما يتوقّعه المستورد لديك-EachSheetSeparate
(30 يومًا، بدون بريد إلكتروني)
(ترخيص خادم، دائم)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
ملفات Excel (XLS، XLSX) هي تنسيقات حاوية. يحمل المصنّف أوراقًا متعدّدة وصيغًا وتنسيقًا ورسوم بيانية وجداول محورية وقواعد شرطية وكائنات مضمّنة. XLS هو تنسيق ثنائي مملوك من التسعينيات؛ 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 Task Scheduler:
@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، Task Scheduler، ActiveX |
| النشر على الخادم | غير ممكن | مصمّم للخوادم، لا حاجة لواجهة رسومية |
| يتطلب تثبيت Excel | غير قابل للتطبيق | لا |
| يتطلب إنترنت | نعم | لا |
COPY sales FROM '/data/sales.csv' CSV HEADER في Postgres أو LOAD DATA INFILE في MySQL. يعمل خط الأنابيب بأكمله في ثوانٍ للملفات التي ستستغرق دقائق عبر مستورد رسومي.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 للاستخدام دون إشراف. لا نوافذ واجهة رسومية، لا مربعات حوار، لا مطالبات تأكيد. يعمل بصمت من سطر الأوامر أو كجزء من خدمة — تمامًا ما يحتاجه خادم الإنتاج.
يهتم مستوردو CSV الحقيقيون بالتفاصيل. فاصل فاصلة منقوطة للأنظمة الأوروبية، UTF-8 للنصوص الدولية، تغليف بعلامات اقتباس مزدوجة للحقول التي تحتوي فواصل مضمّنة. مصنّف Excel بنفس الاثنتي عشرة ورقة شهرية هو ملف واحد، لكن CSV يحمل جدولًا واحدًا لكل ملف — تُقسّم -EachSheetSeparate المصنّف إلى اثني عشر ملف CSV مُسمّى، كل منها جاهز للاستيعاب المنفصل. كل تفصيل مكشوف كعلامة سطر أوامر، بحيث يطابق الإخراج ما يتوقّعه خط الأنابيب التابع لديك من المحاولة الأولى.
تُحوّل أداة سطر الأوامر نفسها Excel إلى PDF وDOC وHTML وXML وJSON وODS وTIFF وJPEG وأكثر. تثبيت واحد يغطي كل هدف تحويل لـExcel. غيّر -c CSV إلى -c PDF وستحصل على تقارير PDF بنفس مزايا الدفعات والأتمتة.
(30 يومًا، بدون بريد إلكتروني أو بطاقة ائتمان)
(ترخيص خادم، دائم)
Windows 7/8/10/11 • Server 2008/2012/2016/2019/2022
"يستوعب خط أنابيبنا أكثر من 200 ملف XLSX يوميًا من مديري المتاجر الإقليمية ويُحمّلها إلى Postgres عبر COPY. استبدلنا سكربت Python-plus-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;
قم بتنزيل النسخة التجريبية المجانية وحول ملفاتك في دقائق.
لا تحتاج إلى بطاقة ائتمان أو بريد إلكتروني.