PHP Excel Templator (محرك قوالب PHP لـ Excel) أو كيف قمنا بكتابة كود ثابت لـ Excel من قبل

الصورة

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

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

use alhimik1986\PhpExcelTemplator\PhpExcelTemplator; PhpExcelTemplator::saveToFile('./template.xlsx', './exported_file.xlsx', [ '{current_date}' => date('dm-Y'), '{department}' => 'Sales department', ]); 

علاوة على ذلك ، لدينا قائمة الرغبات التالية:

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

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

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

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

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

رابط للمشروع

Source: https://habr.com/ru/post/ar425763/


All Articles