حماية الدفعالتفاصيل
- التعديلات ضمن الباقة مجانية.
- إذا لم تردّ خلال 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 واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.
العميل وجميع التفاصيل افتراضية.
عن هذه الخدمة
جدول بمئات الآلاف من الصفوف يصعب فتحه، أو يتجاوز حجمه نموذج استيراد يقبل 5,000 صف في كل مرة، أو يجب إرساله على أجزاء إلى أشخاص مختلفين. يقسمه سكربت Python هذا لك: إلى أجزاء بعدد محدد من الصفوف، أو حسب القيمة في عمود، فتحصل كل منطقة أو متجر أو مندوب مبيعات على ملفه الخاص. يحتفظ كل جزء بصف العناوين وترتيب الأعمدة، وتُسمّى الملفات كما تريد، مثل orders_north.xlsx. يقرأ CSV وExcel ويحفظ بأي منهما. أرسل إلينا بضعة صفوف من الجدول والقاعدة. تشغّل السكربت بنفسك على جهازك، ولا يتغير الملف الأصلي أبدًا. إنه يقسم البيانات؛ ولا يتحقق من القيم فيها ولا يصححها.
ما المشمول
- ما الذي تحصل عليهأرشيف ZIP يضم سكربت Python وملف README بتعليمات خطوة بخطوة، ومن الباقة القياسية ملف إعدادات بقاعدة التقسيم وأسماء الملفات؛ ويُعرض الكود أيضًا في صفحة الطلب.
- حسب الصفوف أو حسب العمودأجزاء متساوية، أو ملف لكل قيمة
- العناوين في كل جزءيُفتح كل ملف ويُستورد بشكل مستقل
- أسماء ملفاتكبرقم أو بقيمة العمود في الاسم
- الأصل لا يُمستُحفظ الأجزاء في مجلد منفصل
- كود مقروءمع تعليقات، ليسهل تغيير القاعدة لاحقًا
كيف يعمل
- 1المهمةترسل بضعة صفوف وتوضح طريقة تقسيم الملف
- 2الكودنكتب السكربت ودليل تشغيله
- 3جرّبهتشغّله على ملفك وتتحقق من الأجزاء
- 4التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ
ما نحتاجه منك
أول 10-20 صفًا من الجدول بصيغة CSV أو Excel (يمكن استبدال الأسماء والأرقام الحقيقية)، وعدد صفوف الملف الكامل وحجمه، والقاعدة: عدد معين من الصفوف لكل جزء، أو ملف لكل قيمة في عمود (سمِّ العمود). كيف تُسمّى الأجزاء، CSV أم Excel، وهل تذهب إلى ملفات منفصلة أم أوراق في مصنف واحد. نظامك: Windows أو macOS أو Linux.
سنسألك:
- أي ملف تحتاج إلى تقسيمه؟
- كيف يجب تقسيمه؟
- كيف يجب أن تكون الأجزاء؟
- أين سيعمل؟
قارن بين الباقات
| الباقات | الأساسيةالتقسيم حسب عدد الصفوف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 أيام وسنُعلمك بذلك في المحادثة.
- إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
الأسئلة والأجوبة
هل يمكنه تقسيم ملف لا يستطيع Excel فتحه؟
نعم، إن كان CSV: يقرأه السكربت سطرًا بسطر، لذا لا مشكلة في ملف بملايين الصفوف. أما ملف .xlsx فيجب أن يتسع ضمن حد Excel نفسه البالغ 1,048,576 صفًا في الورقة.
هل يمكنه التقسيم حسب عمودين في وقت واحد؟
نعم، بدءًا من الباقة القياسية: مثلًا ملف لكل منطقة وشهر. أخبرنا بالأعمدة وكيف يجب أن تبدو أسماء الملفات.
هل ستبقى التواريخ والأصفار البادئة سليمة؟
نعم، تُنسخ القيم كنص ما لم تطلب غير ذلك، فتحتفظ رموز مثل 00125 بأصفارها. أخبرنا بالأعمدة التي تحتوي على تواريخ أو أرقام.
هل ستقسمون الملف بدلًا مني؟
لا. تشغّل السكربت على جهازك، فيبقى الملف الكامل لديك. نحتاج فقط إلى بضعة صفوف نموذجية.
لم تجد إجابتك؟