تقويم من جدول بياناتالتطوير والتخصيص

سكربت Google Apps Script يحوّل صفوف جدول بيانات Google لديك إلى أحداث في تقويم Google ويبقيها متوافقة

جاهز عادةً خلال 15 دقيقةالتعديلات مشمولةفحص الجودة
الباقات
حماية الدفعالتفاصيل
  • التعديلات ضمن الباقة مجانية.
  • إذا لم تردّ خلال 3 أيام من التسليم، يُقبل العمل تلقائيًا.

يُحجز المبلغ عند الدفع ولا يُحوَّل إلا بعد قبولك العمل.

سكربت Google Apps Script يحوّل صفوف جدول بيانات Google لديك إلى أحداث في تقويم Google ويبقيها متوافقة

مثال على النتيجة

مثال على الباقة القياسية

دمج ملفات المبيعات الشهرية لـ 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 واحدًا يضم كل المبيعات وورقة بالإجماليات حسب المتجر.

العميل وجميع التفاصيل افتراضية.

عن هذه الخدمة

جداول الدروس وخطط المناوبات ومواعيد التوصيل أو برنامج الفعالية تعيش غالبًا في جدول بيانات Google، ونسخها إلى تقويم Google واحدًا تلو الآخر بطيء وعرضة للأخطاء. يقرأ سكربت Google Apps Script هذا صفوفك وينشئ حدثًا لكل منها في التقويم الذي تختاره: العنوان والبداية والنهاية والمكان والوصف من أعمدتك. يحفظ معرّف الحدث في الصف، فحين تغيّر وقتًا وتشغّله مجددًا ينتقل الحدث بدلًا من أن يتكرر. وفي الباقة المميزة يمكنه توزيع الأحداث على عدة تقويمات، مثل تقويم لكل معلم أو قاعة. لا يتلقى الضيوف دعوات إلا إن فعّلت ذلك. تُضاف الأحداث إلى حسابك على Google، حيث تثبّت السكربت وتشغّله؛ ولا يتحقق من التعارضات ولا يحجز أي شيء للآخرين.

ما المشمول

  • ما الذي تحصل عليهأرشيف ZIP يضم كود Apps Script وملف README يوضح كيفية إضافته إلى جدولك واختيار التقويم وتشغيله؛ ويُعرض الكود أيضًا في صفحة الطلب.
  • أعمدتكالعنوان والتاريخ والبداية والنهاية والمكان والوصف
  • بلا تكرارمعرّف الحدث في الصف يربطه بحدثه
  • منطقتك الزمنيةتُقرأ الأوقات بالمنطقة الزمنية التي تحددها
  • دعوات فقط إن أردتلا يُدعى الضيوف إلا عند تفعيل ذلك
  • كود مقروءمع تعليقات، ليسهل إضافة عمود لاحقًا

كيف يعمل

  1. 1
    المهمةترسل أعمدة الجدول والتقويم المطلوب استخدامه
  2. 2
    الكودنكتب السكربت ودليل تثبيته
  3. 3
    جرّبهتشغّله على نسخة من الجدول في تقويم تجريبي
  4. 4
    التعديلاتتطلب التعديلات ضمن باقتك وترسل أي رسالة خطأ

ما نحتاجه منك

أسماء أعمدة جدولك وبضعة صفوف (الأسماء المختلقة لا بأس بها)، وطريقة كتابة التواريخ والأوقات فيه، ومنطقتك الزمنية، والتقويم الذي يجب أن تذهب إليه الأحداث (أو للباقة المميزة: العمود الذي يحدد التقويم). ما الذي يجب أن يحدث حين يتغير صف أو يُحذف، وهل يتلقى الضيوف من عمود ما دعوات. العدد التقريبي للصفوف، وكم مرة يتغير الجدول.

سنسألك:

  • ما الذي في الجدول؟
  • إلى أي تقويم يجب أن تذهب الأحداث؟
  • ما الذي يجب أن يحدث حين تتغير الصفوف؟
  • هل يجب دعوة الضيوف؟

قارن بين الباقات

الباقاتالأساسيةمن الصفوف إلى الأحداث‏16 US$القياسيةالأحداث مع الإعدادات‏33 US$المميزةأداة التقويم‏67 US$
مدة التنفيذ1 يوم2 يوم3 أيام
التعديلات123
الكودحتى 150 سطرًاحتى 400 سطرحتى 1,000 سطر
ملفات الكود1حتى 3حتى 8
ملف الإعداداتلانعمنعم
رسائل خطأ واضحة وسجللانعمنعم
خيارات التشغيل ودليل لتشغيله وفق جدول زمنيلالانعم
دليل التثبيت والتشغيل (README)نعمنعمنعم
اللغةGoogle Apps ScriptGoogle Apps ScriptGoogle Apps Script
اطلب الأساسيةاطلب القياسيةاطلب المميزة

حماية الدفع

تدفع عند الطلب، لكن المبلغ لا يُحوَّل إلا مقابل عمل قبلته.

  • سعر ثابتلا يتغير سعر الباقة بعد الدفع.
  • المبلغ محجوزعند الدفع، يُحجز المبلغ فقط. ولا يُحوَّل إلى Dleex إلا بعد قبولك العمل.
  • فحص قبل التسليمتخضع كل نتيجة لفحص الجودة قبل أن تصل إليك، وتراها في صفحة الطلب قبل قبولها.
  • تعديلات مجانيةاطلب تعديلات ضمن متطلبات طلبك بالعدد الذي تسمح به الباقة.
  • القبول بعد 3 أيامإذا لم تقبل العمل ولم تطلب تعديلات خلال 3 أيام من التسليم، يُقبل تلقائيًا. وإذا كتبت في محادثة الطلب بعد التسليم، يبقى الطلب قيد الانتظار؛ وبعد ردّنا، قد نعيد بدء مهلة 3 أيام وسنُعلمك بذلك في المحادثة.
  • إعادة التنفيذ أو استرداد المبلغ كاملًاإذا لم تطابق النتيجة متطلبات طلبك ولم تُصلحها التعديلات، أو استغرق العمل أكثر من ضعف مدة التنفيذ، فاكتب في محادثة الطلب: سنعيد تنفيذ العمل أو نردّ إليك المبلغ كاملًا.
كيف يعمل →

الأسئلة والأجوبة

ماذا لو غيّرت صفًا بعد إنشاء الحدث؟

بدءًا من الباقة القياسية يجد السكربت الحدث عبر المعرّف المحفوظ في الصف ويحدّثه. في الباقة الأساسية تُتخطى الصفوف التي لها حدث بالفعل، فتغيّر الحدث في التقويم بنفسك.

هل سيحذف الأحداث؟

في الباقة المميزة فقط ووفق القاعدة التي تعطيها فقط، مثل إزالة الحدث حين يُميَّز الصف بـ Cancelled. الأحداث التي لم ينشئها لا تُمس أبدًا.

هل يمكنه وضع أحداث في تقويمات زملائي؟

في التقويمات التي يمكنك تعديلها، مثل التقويمات المشتركة، نعم. وإلا يمكنك دعوتهم كضيوف من عمود ما، إن فعّلت الدعوات.

هل تحصلون على وصول إلى تقويمي؟

لا. تضيف السكربت إلى جدولك الخاص وتمنحه الصلاحيات بنفسك. لا نسجّل الدخول إلى حسابك على Google أبدًا.

لم تجد إجابتك؟

الباقات