گرفتن خروجی اکسل از دیتابیس با PHP

۱۱ فروردین ۱۳۹۹

در اولین مطلب از بخش اسنیپ تصمیم گرفتم روش و کد های مورد نیاز برای گرفتن خروجی با فایل اکسل از دیتابیس را با زبان PHP با شما به اشتراک بگذارم.

کدها ساده و خوانا هستند ولی در هر صورت نیاز دارید تا نسبت به پروژه خودتان ویرایش نمایید.

این کدها و این روش در سایتهای دیگر هست ولی تفاوتش در آپدیت اون با آخرین ورژن های مایکروسافت اکسل و همچنین پشتیبانی از فرمت xlsx میباشد.

در ابتدا فایل xlsxwriter.class.php را به پروژه خود اضافه میکنید و سپس در فایل خروجی خود آن را include میکنید و بعد از فراخوانی جدول مورد نظر از دیتابیس و فیلد های لازم ، از اطلاعات خروجی اکسل خود را دریافت میکنید.

امیدوارم مورد استفاده شما قرار بگیرد.

// PHP CODE
require_once '../config.php';
include_once("xlsxwriter.class.php&#8221;);</p>
<p>$setRec = mysqli_query($connection,&#8221;SELECT `id`,`code`,`name`,`cat`,`stock`,`price1`,`price2`,`dis_app`,`dis_cash`,`max_order`,`per_box`,`gift`,`image`,`comment`,`status` FROM tbl_item ORDER BY id DESC&#8221;);</p>
<p>$header = array(
'آی دی'=>'integer',
'کد کالا'=>'integer',
'نام کالا'=>'string',
'دسته'=>'integer',
'موجودی'=>'integer',
'قیمت مصرف کننده'=>'integer',
'قیمت فروش'=>'integer',
'تخفیف آنلاین'=>'string',
'تخفیف نقدی'=>'string',
'حداکثر سفارش'=>'integer',
'تعداد در جعبه'=>'integer',
'هدیه'=>'string',
'تصویر'=>'string',
'توضیحات'=>'string',
'وضعیت'=>'integer',
);</p>
<p>while ($rec = mysqli_fetch_all($setRec)) {</p>
<p> $data=array_merge(array(), $rec);
}</p>
<p>$writer = new XLSXWriter();
$writer->writeSheetHeader('Sheet1', $header );
foreach($data as $row)
$writer->writeSheetRow('Sheet1', $row );
$new_string = preg_replace("/[^0-9]/&#8221;, "&#8221;, $todaytime);
$filename =&#8221;d-products-$new_string.xlsx&#8221;;</p>
<p>$writer->writeToFile(__DIR__ .'/download/'.$filename);</p>
<p>header('Content-disposition: attachment; filename=&#8221;'.XLSXWriter::sanitize_filename($filename).'&#8221;');
header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&#8221;);
header('Content-Transfer-Encoding: binary');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0&#8221;);
header("Content-Type: application/force-download&#8221;);
header("Content-Type: application/octet-stream&#8221;);
header("Content-Type: application/download&#8221;);;
header('Pragma: public');
readfile(__DIR__ .'/download/'.$filename);</p>
<p>exit(0);

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

52 − = 46