اگر می خواهید از اطلاعات جدول های دیتابیس یا هر اطلاعات دیگری در php خروجی اکسل تهیه کنید در این آموزش با من همراه باشید تا نحوه ی تولید فایل اکسل، استایل دهی، فونت ها و … را در php با هم بررسی کنیم.
فهرست عناوین
- نصب کتابخانه PhpSpreadsheet
- ساخت یک اکسل ساده
- اعمال رنگ متن، رنگ پس زمینه، راست چین، فونت و …
- تغییر سایز عرض ستون ها و ارتفاع ردیف ها
نصب کتابخانه PhpSpreadsheet
برای نصب این کتابخانه از composer استفاده می کنیم. ابتدا با استفاده از دستور زیر کتابخانه را نصب کنید تا در ادامه نحوه ی راه اندازی و کار با آن را با هم بررسی کنیم:
اگر می خواهید کد های نمونه ای که خود کتابخانه آماده کرده است را نیز دانلود کنید از دستور زیر برای نصب استفاده کنید:
ساخت یک اکسل ساده
برای قدم اول می خواهیم فایل اکسلی بسازیم که در فیلد اول آن، یعنی ردیف ۱ و ستون ۱ کلمه “سلام!” نوشته شود:
ابتدا فایل autoload.php که پس از نصب کتابخانه در پوشه ای به نام vendor یافت می شود را در فایل خود وارد می کنیم.
دو خط ابتدایی فایل namespace های ما هستند و برای این است که بتواین نام کلاس های Spreadsheet و Xlsx را به صورت خلاصه در کد خود استفاده کنیم. اگر این دو خط را در ابتدا نیاورده باشیم کد به این شکل خواهد شد:
پس برای سادگی در کد نویسی ابتدا namespace ها را در ابتدای کد وارد می کنیم.
سپس یک از کلاس Spreadsheet یک نمونه ایجاد کرده و در متغیر $spreadsheet قرار می دهیم. این متغیر کل محیط اکسل ما هست که می تواند شامل چندین شیت باشد. به همین دلیل برای اینکه در یکی از شیت ها داده های خود را وارد کنیم آن شیت را گرفته و در متغیری دیگر ذخیره می کنیم. در اینجا با استفاده از متد getActiveSheet، شیتی که در حال حاضر فعال هست را انتخاب می کنیم و در متغیر sheet قرار می دهیم (که در این کد فقط یک شیت داریم).
پس از این باید با استفاده از متد setCellValue فیلد های فایل اکسل خود را با مقادیر مورد نظر خود پر کنید. پارامتر اول این متد نام فیلد است و پارامتر دوم، مقداری که می خواهیم در آن فیلد قرار دهیم. همانطور که می دانید در اکسل ردیف ها از صفر شماره گذاری می شوند و ستون ها از حرف A. در نتیجه نام فیلد اول برابر می شود با A0.
در پایان، پس از اینکه کلمه “سلام!” را در فیلد A0 قرار دادیم اکنون می خواهیم اکسل خود را در یک فایل ذخیره کنید. برای اینکار یک نمونه از کلاس Xlsx ایجاد می کنیم. آرگومان ورودی این کلاس متغیر مربوط به اکسل ما یعنی $spreadsheet است.
سپس با استفاده از متد save آن را در فایلی با نام دلخواه (hello.xlsx) ذخیره می کنیم.
اعمال رنگ متن، رنگ پس زمینه، ابعاد، راست چین و …
برای استایل دهی به یک فیلد، ابتدا با استفاده از متد getStyle آن فیلد را برای گرفتن استایل مورد نظر آماده می کنیم. سپس برای اعمال هر استایل از متد مربوط به خود استفاده میکنیم. به مثال زیر دقت کنید: (در ابتدای کد namespace های مربوط به کلاس های استایل نیز اضافه می شود)
برای دریافت متد های مربوط به تمام استایل ها (استایل های مربوط به حاشیه دهی، رنگ حاشیه، فونت و …) به این لینک مراجعه کنید:
https://phpspreadsheet.readthedocs.io/en/latest/topics/recipes/#styles
استایل دهی همزمان به چند فیلد
برای استایل دهی همزمان به چند فیلد با علامت دو نقطه (:) محدوده را مشخص می کنیم. مثلا برای استایل دهی به ۵ خانه اول ردیف ۱ می نویسیم:
از A0 تا A4
تغییر سایز عرض ستون ها و ارتفاع ردیف ها
برای تغییر عرض یک ستون ابتدا با استفاده از متد getColumnDimension آن ستون را آماده کرده و سپس با متد setWidth عرض دلخواه را به آن می دهیم. همچنین برای تغییر ارتفاع یک ردیف ابتدا با استفاده از متد getRowDimension آن ردیف را آماده کرده و سپس با متد setRowHeight ارتفاع آن را مشخص می کنیم. توجه داشته باشید که برای انتخاب یک ردیف باید عدد مربوط به آن و برای انتخاب یک ستون حرف مربوطه را به عنوان آرگومان ورودی به متد بدهیم:
اگر در مورد مطالب این بخش سوالی داشتید و یا در مورد متد های دیگر این کتابخانه، در بخش نظرات یا پرسش و پاسخ بپرسید.
دیدگاهها