26. التنفيذ التلقائي باستخدام بيانات JSON

يمكنك استخدام البيانات في JSON لتكرار مخططات تم إنشاؤها في البداية كقالب وتوفير ورقة بيانات جديدة لها. يمكنك التحكم في ترتيب استخدام قوالب محددة لإنشاء عرض تقديمي جديد. كما يمكن استخدام القوالب عدة مرات.

يمكن تخزين كل من قوالب PowerPoint وبيانات JSON محليًا أو عن بُعد. كما يمكن إنشاء بيانات JSON على الفور بواسطة خدمة ويب.

26.1
بنية بيانات JSON للاستخدام في think-cell
26.2
استخدام بيانات JSON لإنشاء عرض تقديمي
26.3
توفير بيانات JSON عن بُعد
26.4
توفير القالب عن بعد
26.5
مُعالجة بيانات JSON عن بُعد

26.1 بنية بيانات JSON للاستخدام في think-cell

فيما يلي مثال لبيانات JSON المستخدمة في think-cell والتي يمكن العثور عليها في الملف sample.ppttc في المجلد الفرعي ppttc بدليل تثبيت think-cell. يحدد JSON العرض التقديمي الذي سيتم إنشاؤه من سلسلة من القوالب. وهو مطابق للمخطط في ppttc/ppttc-schema.json.

مثال لملف JSON مستخدم في التنفيذ التلقائي لمهام think-cell.

في مستوى الجذر توجد مصفوفة من العناصر. يحدد كل عنصر ملف قالب وبيانات للمخططات الخاصة به. يمكن إنشاء سلسلة قوالب مختلفة ويمكن استخدام قالب مفرد أكثر من مرة. في أبسط الحالات، يتم استخدام قالب مفرد مرة واحدة لتعبئة جميع المخططات المضمنة في هذا القالب بالبيانات.

يحتوي كل عنصر في مصفوفة القوالب المتسلسلة على مفتاحين: image.  template و image.  data. تتمثل قيمة image.  template في المسار إلى ملف PowerPoint مع مخططات think-cell التي تم تعيين اسم كمعرف لها (راجع 24. مقدمة عن التنفيذ التلقائي). كما يمكن استرداد ملف القالب من موقع بعيد على النحو الموضح في توفير بيانات JSON عن بُعد.

تتمثل قيمة المفتاح image.  data في قائمة من جداول البيانات بتنسيق JSON تُستخدم في المخططات المضمنة في القالب. لكل عنصر في القائمة خاصيتان: image.  name و image.  table. image.  name تحدد المخطط باستخدام اسمه و image.  table تحتفظ بجدول البيانات.

تناظر بنية قيمة image.  table مباشرةً ورقة بيانات ذات مواضع غير مبدلة حيث تمثل الصفوف سلاسل وتمثل الأعمدة فئات. بالنسبة لمخطط افتراضي يعني ذلك تمثيل الترتيب التالي للصفوف:

  1. صف يحتوي على خلية فارغة في البداية (null) ثم خلايا تحتوي على أسماء الفئات.
  2. صف بقيم 100%. في حالة عدم استخدام قيم 100% يتم تحديد الصف الفارغ بمثابة image.  [].
  3. صفوف متعددة تحتوي على خلية أولى تضم اسم السلسلة وخلايا لاحقة تحتوي على قيم رقمية.

يمكن الإشارة إلى أي مخطط يقبل اسمًا في JSON. بالنسبة لتخطيط ورقة البيانات الخاص به، راجع الفصل الخاص بهذا الصدد أو افتح ورقة البيانات الداخلية للمخطط كمرجع.

ملاحظة: يمكن أن تحتوي أي خلية في نطاق ورقة بيانات think-cell على أي نوع من النصوص. يمكن أيضًا تعبئة الخلية الأولى في الصف الأول، حسب الرغبة.

يجب أن تلتزم البيانات التي تُكوّن قيمة مفتاح table بالقواعد المحددة التي تم تعيينها في المخطط. تكون قيمة المفتاح table مصفوفة في حد ذاتها. تمثل المصفوفات الفرعية صفوف ورقة البيانات. يمكن تحديد الصفوف الفارغة باستخدام مصفوفة فارغة []. يتم وصف محتوى الخلية بالعناصر المدرجة في هذه المصفوفة الفرعية. يتوافق ترتيب العناصر مع ترتيب الأعمدة في ورقة البيانات. يجب وصف الخلية الفارغة صراحةً باستخدام العنصر null. ينبغي وصف الخلايا التي تشتمل على محتوى باستخدام زوج مفتاح وقيمة آخر. في هذه الحالة، يصف المفتاح نوع البيانات بينما تحتوي القيمة على البيانات الفعلية التي سيتم عرضها في العرض التقديمي. يدعم البرنامج ثلاثة أنواع مختلفة من البيانات:

image.  string لأي نوع من النصوص. يدعم البرنامج جميع رموز unicode (UTF-8) القابلة للطباعة. مثال: {"string":"Echo"}

image.  number لأي نوع من الأعداد. يجب أن يكون الفاصل العشري المستخدم نقطة. مثال: {"number":"5"}

image.  date للتواريخ. التنسيق المطلوب هو YYYY-MM-DD. مثال: {"date":"2016-09-04"}

يجب أن يتم أي تنسيق لمحتويات الخلايا (على سبيل المثال، تحديد تنسيق التاريخ) في قالب PowerPoint.

بالنسبة إلى الحقول النصية المسماة، يتكون عنصر table من "خلية" واحدة فقط في "صف" واحد، ولذلك تحتاج إلى استخدام صفيف JSON مثل الموجود في الجزء التالي، والذي سيظهر مرة واحدة لكل حقل نصي مسمى داخل عنصر data:

{ 
  "name": "Title", 
  "table": [[{"string":"A slide title"}]] 
},

26.2 استخدام بيانات JSON لإنشاء عرض تقديمي

يجب أن يكون ملف بيانات JSON من نوع الملف .ppttc. عند فتح هذا الملف:

  1. يقوم think-cell بقراءة الملف والتحقق من سلامته البنيوية.
  2. يتم إنشاء عرض تقديمي جديد. فيما يتعلق بكل عنصر في المستوى الأعلى من ملف JSON، يحتوي العرض التقديمي الجديد على نسخة من القالب المحدد.
  3. في نسخة القالب، يتم استبدال أوراق بيانات المخططات المحددة بواسطة القيم name بالبيانات الموجودة في القيم table. يتم تحديث أي تسميات إجمالي، ومواضع التسميات، وقيم أسهم الفروق، أو زخارف المخططات الأخرى.

بعد ذلك، يتم عرض العرض التقديمي الجديد. يمكن للمستخدم إجراء المزيد من عمليات التحرير لمحتويات العرض التقديمي وحفظه أو استخدامه بأي طريقة أخرى.

يمكنك أيضًا إنشاء عرض تقديمي من بيانات JSON في سطر الأوامر:

ppttc input.ppttc -o output.pptx

يوجد ppttc.exe القابل للتنفيذ في مجلد تثبيت think-cell. يمكن دمج استدعاء ppttc.exe بسهولة في عمليات سير عمل التنفيذ التلقائي.

26.3 توفير بيانات JSON عن بُعد

يمكن أيضًا إنشاء بيانات JSON في ملف .ppttc عن بعد من خلال خدمة ويب وتوفيرها للمستخدم لتنزيلها في مستعرض ويب. يرجى الاطلاع على النموذج المتوفر أدناه sample.html في المجلد الفرعي ppttc بدليل تثبيت think-cell.

<!DOCTYPE html> 
<html> 
<body> 
 
<h1>ppttc test</h1> 
 
<button type="button" onclick="myFunction()"> 
Download .ppttc 
</button> 
 
<a id="downloader" style="display:none"/> 
 
<script> 
function myFunction() { 
  var obj = [ 
    { 
      template : "https://static.think-cell.com/ppttc/template.pptx", 
      data: [ 
        { 
          name: "Chart1", 
          table: [ 
            [null, {string:"Alpha"},{string:"Bravo"},{string:"Charlie"}], 
            [], 
            [{string:"Delta"},{number:1},{number:2},{number:3}], 
            [{string:"Echo"},{number:4},{number:5},{number:6}] 
          ] 
        }, 
        { 
          name: "Chart2", 
          table: [ 
            [null, {date:"2016-09-03"},{date:"2016-09-04"},{date:"2016-09-05"}], 
            [], 
            [{string:"Foxtrot"},{number:7},{number:8},{number:9}], 
            [{string:"Gulf"},{number:10},{number:11},{number:12}] 
          ] 
        } 
      ] 
    } 
  ]; 
  var elemDownloader = document.getElementById("downloader"); 
  elemDownloader.setAttribute("href","data:application/vnd.think-cell.ppttc+json;charset=utf-8," 
    + encodeURIComponent(JSON.stringify(obj))); 
  elemDownloader.setAttribute("download", "sample.ppttc"); 
  elemDownloader.click(); 
} 
</script> 
 
</body> 
</html>

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

عند تنزيل ملف .ppttc، يمكن للمستخدم اختيار حفظ الملف أو فتحه شأن عمليات التنزيل الأخرى. عند فتح الملف، تُستخدم بيانات JSON لإنشاء عرض تقديمي جديد على النحو الموضح في استخدام بيانات JSON لإنشاء عرض تقديمي.

26.4 توفير القالب عن بعد

يمكن أيضًا توفير ملفات قوالب تحتوي على مخططات think-cell عبر خادم بعيد. في هذه الحالة، تكون قيمة المفتاح template عبارة عن عنوان URL بدلاً من المسار المحلي، على النحو الموضح في المثال الوارد أعلاه لبيانات JSON عن بعد. يمكن لعنوان URL تحديد http كبروتوكول، أو https لإنشاء اتصال آمن، أو أي بروتوكول صالح على النظام الذي سيتم فتح الملف .ppttc فيه.

عند معالجة الملف .ppttc الذي يشير إلى قالب بعيد، يقوم PowerPoint باسترداد ملف القالب. لذلك، يحتاج المستخدم الذي فتح الملف .ppttc إلى صلاحية وصول مناسبة إلى القالب البعيد.

عند إنشاء بيانات JSON عن بُعد بواسطة خدمة ويب وتخزين القوالب عن بُعد أيضًا، لا يلزم سوى وجود إصدار مثبت قياسي لبرنامج think-cell على جهاز المستخدم من أجل استخدام العروض التقديمية في PowerPoint التي تم إنشاؤها ديناميكيًا مع مخططات think-cell.

26.5 مُعالجة بيانات JSON عن بُعد

يُمكنك تشغيل مُعالجة think-cell لبيانات JSON كخادم. وفي هذه الحالة، تتم عملية دمج بيانات JSON مع القوالب لإنشاء عروض تقديمية لبرنامج PowerPoint على خادم بعيد. يقبل الخادم أجزاء JSON باعتبارها إدخال ويوفر العروض التقديمية المُدمجة لبرنامج PowerPoint باعتبارها إخراج، ويتم كلا الأمرين عبر HTTP.

لتشغيل خادم think-cell، انتقل إلى مُجلد التثبيت وقم بتشغيل tcserver.exe. يتم فتح مربع الحوار التالي:

مربع حوار إعداد خادم think-cell.

لتشغيل الخادم:

  1. حدد عنوان IP والمنفذ الذي ينبغي أن يُصغي الخادم عنده في حقل UrlPrefix على هيئة عنوان URL. يُحدد الجزء الأول من عنوان URL ما إذا كان يتم استخدام HTTP غير المُشفر أو HTTPS المُشفر.
  2. انقر فوق الزر تطبيق.
  3. قم بتأكيد تغييرات التكوين الخاصة بنظامك في مربع حوار التحكم في حساب المستخدم (UAC) الذي يظهر.

سترى في الحقل سجل الموجود أسفل النافذة تأكيدًا بتشغيل الخادم وإصغائه الآن عند عنوان URL. كما سترى جميع طلبات العملاء واستجابات الخادم في الحقل سجل.

مربع حوار خادم think-cell مع رسائل السجل.

لإيقاف الخادم، انقر فوق الزر إزالة. لتغيير عنوان URL، أدخل عنوان URL جديدًا في الحقل UrlPrefix وانقر فوق تطبيق.

يقبل الخادم بيانات JSON باعتبارها طلبات HTTP POST مع نوع MIME application/vnd.think-cell.ppttc+json ويستجيب بملف PowerPoint.

لبدء استخدام الخادم، يُرجى نسخ عنوان URL من الحقل UrlPrefix وفتحه في مُستعرض. يتم فتح صفحة كنموذج. يمتاز الخادم بالتوثيق الذاتي، وتُظهر التعليمات البرمجية المصدر بتنسيق HTML للصفحة النموذج استخدامها بالإضافة إلى مثال تفصيلي. يحتوي المثال على العناصر التالية:

  • علامات HTML لزر يستدعي طريقة باستخدام XMLHttpRequest للاتصال بالخادم عند النقر فوقه.
  • جزء JSON ثابت. أثناء الاستخدام، ستقوم عادةً بإنشاء بيانات JSON ديناميكيًا.
  • وظيفة JavaScript لإرسال بيانات JSON إلى الخادم. تُنشئ طلب HTTP POST مع بيانات JSON الثابتة. يتم تقديم استجابة الخادم إلى المستعرض على هيئة تنزيل ملف.

وتُعد أي طريقة أخرى لإنشاء طلبات HTTP POST وحفظ استجابة الخادم كملف PowerPoint فعالة أيضًا. أثناء الاستخدام، لست مقيدًا باستخدام JavaScript لهذا الغرض.

مشاركة