برمجةحماية الدفعالتفاصيل
- التعديلات ضمن الباقة مجانية.
- إذا لم تردّ خلال 3 أيام من التسليم، يُقبل العمل تلقائيًا.
يُحجز المبلغ عند الدفع ولا يُحوَّل إلا بعد قبولك العمل.

مثال على النتيجة
دمج ملفات المبيعات الشهرية لـ 9 متاجر في تقرير Excel واحد
طريقة التشغيل
python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO المجلد: sales/2026-10، عُثر على 9 ملفات
2026-11-02 09:14:03 INFO shop-01.csv: 1,284 صفًا
2026-11-02 09:14:04 INFO shop-02.xlsx: 967 صفًا
2026-11-02 09:14:04 WARN shop-07.csv: تُخطّيت 3 صفوف بلا سعر (الأسطر 88، 412، 913)
2026-11-02 09:14:05 INFO تم: 10,412 صفًا -> report-2026-10.xlsx (الورقتان «المبيعات» و«الإجماليات»)
إعدادات لا كود
أسماء أعمدة كل متجر موجودة في settings.ini، فالمتجر الجديد أو العمود الذي تغيّر اسمه يعني سطرًا واحدًا هناك:
[columns]
date = التاريخ, تاريخ البيع, اليوم
product = المنتج, الصنف, الاسم
quantity = الكمية, العدد, قطع
price = السعر, سعر الوحدة
جزء من الكود
def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
"""يقرأ ملف متجر واحد ويمنح أعمدته أسماء أعمدة التقرير."""
table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
renamed = {}
for name, variants in columns.items():
found = next((c for c in table.columns if c.strip() in variants), None)
if found is None:
raise ReportError(f"{path.name}: لا يوجد عمود لـ «{name}» (جرى البحث عن: {', '.join(variants)})")
renamed[found] = name
table = table.rename(columns=renamed)[list(columns)]
table["shop"] = path.stem
return table
الملفات: أرشيف ZIP يضم merge_sales.py (310 أسطر)، وsettings.ini، وrequirements.txt، وملف README يشرح تثبيت Python وتشغيل السكربت ومعنى كل رسالة في السجل. يشغّله العميل على كمبيوتره الخاص.
العميل: سلسلة صغيرة من 9 متاجر للأدوات المكتبية؛ يرسل كل متجر مبيعاته الشهرية في ملف CSV أو Excel، بأسماء أعمدة تختلف قليلًا من متجر إلى آخر. المهمة: سكربت واحد يقرأ كل ملف في مجلد، ويوحّد الأعمدة في شكل واحد، ويكتب تقرير Excel واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.
العميل وجميع التفاصيل افتراضية.
عن هذه الخدمة
قوائم أسعار المورّدين وتقارير البنوك أو المتاجر الإلكترونية الكبرى وقوائم المخزون تأتي غالبًا بصيغة PDF فقط، ونسخ جداولها إلى Excel يفسد الأعمدة. يقرأ سكربت Python هذا جداول ملفات PDF لديك ويكتبها في Excel أو CSV مع بقاء الأعمدة في أماكنها: يضم الجدول الممتد عبر صفحات كثيرة، ويحذف أسطر العناوين المكررة وتذييلات الصفحات، وبدءًا من الباقة القياسية يحوّل 1 234,50 أو (120.00) إلى أرقام حقيقية والتواريخ إلى تواريخ. إنه مضبوط على تخطيط ملفاتك، لذا أرسل ملف PDF نموذجيًا أو اثنين، أو التخطيط نفسه بأرقام مختلقة. يجب أن يحتوي ملف PDF على نص حقيقي، كما هي حال معظم الملفات المحفوظة من البرامج؛ أما الصور الممسوحة ضوئيًا وصور الأوراق فتحتاج إلى التعرف الضوئي على النصوص، وهو غير مشمول. تشغّل السكربت بنفسك وتتحقق من المجاميع.
ما المشمول
- ما الذي تحصل عليهأرشيف ZIP يضم سكربت Python وملف README بتعليمات خطوة بخطوة، ومن الباقة القياسية ملف إعدادات بأسماء الأعمدة والصفحات؛ ويُعرض الكود أيضًا في صفحة الطلب.
- مضبوط على تخطيطكمبني ومجرَّب على الملفات النموذجية التي ترسلها
- الأعمدة في أماكنهاكل صف في PDF هو صف في Excel
- ضم صفحات كثيرةيصبح الجدول الطويل ورقة واحدة بلا عناوين مكررة
- أرقام حقيقيةبدءًا من الباقة القياسية، مبالغ وتواريخ يمكنك جمعها وفرزها
- كود مقروءمع تعليقات، ليسهل التعديل إن تغيّر التخطيط
كيف يعمل
- 1النماذجترسل ملف PDF نموذجيًا أو اثنين وتوضح الجدول الذي تحتاجه
- 2الكودنكتب السكربت لذلك التخطيط ودليل تشغيله
- 3جرّبهتشغّله على ملفاتك وتقارن المجاميع بملف PDF
- 4التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ
ما نحتاجه منك
ملف PDF نموذجي أو اثنان من النوع الذي تتلقاه (أو التخطيط نفسه بأسماء وأرقام مختلقة)، وأي جدول في أي صفحات تحتاجه، والأعمدة التي تريدها في Excel. كيف تُكتب الأرقام فيها (فواصل أو مسافات أو علامات ناقص أو أقواس) وصيغة التاريخ. هل تشترك كل ملفاتك في تخطيط واحد أم توجد عدة أنواع، والعدد التقريبي للملفات التي تعالجها، ونظامك: Windows أو macOS أو Linux.
سنسألك:
- ما ملفات PDF هذه؟
- ما الأعمدة التي تحتاجها في Excel؟
- هل تبدو كل ملفاتك متشابهة؟
- أين سيعمل؟
قارن بين الباقات
| الباقات | الأساسيةتخطيط جدول واحد16 US$ | القياسيةالجداول مع الإعدادات33 US$ | المميزةأداة الجداول67 US$ |
|---|---|---|---|
| مدة التنفيذ | 1 يوم | 2 يوم | 3 أيام |
| التعديلات | 1 | 2 | 3 |
| الكود | حتى 150 سطرًا | حتى 400 سطر | حتى 1,000 سطر |
| ملفات الكود | 1 | حتى 3 | حتى 8 |
| ملف الإعدادات | لا | نعم | نعم |
| رسائل خطأ واضحة وسجل | لا | نعم | نعم |
| خيارات التشغيل ودليل لتشغيله وفق جدول زمني | لا | لا | نعم |
| دليل التثبيت والتشغيل (README) | نعم | نعم | نعم |
| اللغة | Python | Python | Python |
| اطلب الأساسية | اطلب القياسية | اطلب المميزة |
حماية الدفع
تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.
- سعر ثابتلا يتغير سعر الباقة بعد الدفع.
- المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
- فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
- تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
- القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
- إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
الأسئلة والأجوبة
هل سيعمل مع أي ملف PDF؟
إنه مصمم لتخطيط ملفاتك النموذجية. إن غيّر مورّدك التخطيط، فقد يحتاج السكربت إلى تعديل. ملفات PDF التي لا تحتوي على نص حقيقي، مثل الملفات الممسوحة ضوئيًا، غير مشمولة.
كيف أعرف هل يحتوي ملف PDF على نص حقيقي؟
افتحه وحاول تحديد كلمة بالفأرة. إن استطعت تحديدها ونسخها، فالنص حقيقي. وإن تحددت الصفحة كلها كصورة واحدة، فهي ممسوحة ضوئيًا.
هل يمكن أن يخطئ؟
نعم، جداول PDF لا تُخزَّن كجداول، لذا قد يفسد سطر غريب أحد الصفوف. لهذا يسجل السكربت الصفحات التي لم يكن متأكدًا منها، وعليك مقارنة المجاميع بملف PDF قبل استخدام النتيجة.
هل عليّ إرسال تقارير حقيقية؟
لا. التخطيط نفسه بأرقام مختلقة يفي بالغرض تمامًا، ثم يعمل السكربت على ملفاتك الحقيقية على جهازك.
لم تجد إجابتك؟


