امروز قصد داریم به شما روش دریافت خروجی اکسل در php از آرایه و mysql را نشان بدیم.
دریافت خروجی از داده ها یک قابلیت بسیار کاربردی برای ذخیره داده ها به صورت لیست شده و ذخیره آن بر روی کامپیوتر شخصی برای استفاده های آفلاین است . قابلیت گرفتن خروجی از داده ها , برنامه تحت وب شما را بسیار کاربر پسند می کند و به کاربر یا مدیران سایت و سیستم احازه لیست کردن اطلاعات را می دهد .
اکسل (Excel) یکی از بهترین فرمت ها برای گرفتن خروجی در یک فایل است و شما به راحتی می توانید در برنامه های تحت وب به ساخت فایل اکسل با php بپردازید .
در این آموزش , به شما نحوه دریافت خروجی اکسل در php از داده های آرایه ای یا دیتابیس MySQL را نشان می دهیم. با اسکریپت php ما به راحتی می توانید قابلیت گرفتن خروجی با فرمت اکسل (excel) را پیاده سازی کنید . با یک کلیک , کاربر یا مدیر سایت می توانید داده ها را با خروجی اکسل دریافت و آن را در قالب فایل .xls دانلود کند.
دریافت خروجی اکسل در php از آرایه ها
در این بخش قصد دریافت خروجی اکسل از داده آرایه ای ($data) را داریم .
1 2 3 4 5 6 7 8 |
$data = array( array("First Name" => "Natly", "Last Name" => "Jones", "Email" => "natly@gmail.com", "Message" => "Test message by Natly"), array("First Name" => "Codex", "Last Name" => "World", "Email" => "info@Netparadis.com", "Message" => "Test message by Netparadis"), array("First Name" => "John", "Last Name" => "Thomas", "Email" => "john@gmail.com", "Message" => "Test message by John"), array("First Name" => "Michael", "Last Name" => "Vicktor", "Email" => "michael@gmail.com", "Message" => "Test message by Michael"), array("First Name" => "Sarah", "Last Name" => "David", "Email" => "sarah@gmail.com", "Message" => "Test message by Sarah") ); |
برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود
یک تابع به نام filterData() ساختیم که برای فیلتر رشته های ذخیره شده در آرایه از آن بهره خواهیم برد .
1 2 3 4 5 6 |
function filterData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; } |
در کد php زیر , متغیر $fileName اسم فایل برای دانلود را نگه داری می کند و همچنین محتویات هدر header برای اجبار دانلود فایل , تعریف شده اند .
1 2 3 4 5 6 |
// file name for download $fileName = "netparadis_export_data" . date('Ymd') . ".xls"; // headers for download header("Content-Disposition: attachment; filename=\"$fileName\""); header("Content-Type: application/vnd.ms-excel"); |
حالا یک حلقه برای هریک از جفت کلید/مقادیر در $data اجرا می کنیم . با استفاده از متغیر $flag ما اسم ها ستون را به عنوان اولین سطر نمایش می دهیم . تابع array_walk() برای فیلتر داده های باهم در تابع filterData() استفاده شده است .
1 2 3 4 5 6 7 8 9 10 11 12 13 |
$flag = false; foreach($data as $row) { if(!$flag){ // display column names as first row echo implode("\t", array_keys($row)) . "\n"; $flag = true; } // filter data array_walk($row, 'filterData'); echo implode("\t", array_values($row)) . "\n"; } exit; |
حالا اسکریپت کامل دریافت خروجی اکسل در php را در زیر میبینید .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<?php $data = array( array("First Name" => "Natly", "Last Name" => "Jones", "Email" => "natly@gmail.com", "Message" => "Test message by Natly"), array("First Name" => "Codex", "Last Name" => "World", "Email" => "info@Netparadis.com", "Message" => "Test message by Netparadis"), array("First Name" => "John", "Last Name" => "Thomas", "Email" => "john@gmail.com", "Message" => "Test message by John"), array("First Name" => "Michael", "Last Name" => "Vicktor", "Email" => "michael@gmail.com", "Message" => "Test message by Michael"), array("First Name" => "Sarah", "Last Name" => "David", "Email" => "sarah@gmail.com", "Message" => "Test message by Sarah") ); function filterData(&$str) { $str = preg_replace("/\t/", "\\t", $str); $str = preg_replace("/\r?\n/", "\\n", $str); if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"'; } // file name for download $fileName = "Netparadis_export_data" . date('Ymd') . ".xls"; // headers for download header("Content-Disposition: attachment; filename=\"$fileName\""); header("Content-Type: application/vnd.ms-excel"); $flag = false; foreach($data as $row) { if(!$flag) { // display column names as first row echo implode("\t", array_keys($row)) . "\n"; $flag = true; } // filter data array_walk($row, 'filterData'); echo implode("\t", array_values($row)) . "\n"; } exit; ?> |
دریافت خروجی اکسل در php از دیتابیس MySQL
برای استخراج داده MySQl به Excel توسط زبان PHP به صورت زیر عمل می کنیم .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
<?php $conn = new mysqli('localhost', 'USERNAME', 'PASSWORD','DB_NAME'); $conn->set_charset("utf8"); $setSql = "select * from TBL_NAME"; $setRec = mysqli_query($conn, $setSql); $columnHeader = ''; $columnHeader = "Sr NO" . "\t" . "User Name" . "\t"; $setData = ''; while ($rec = mysqli_fetch_row($setRec)) { $rowData = ''; foreach ($rec as $value) { $value = '"' . $value . '"' . "\t"; $rowData .= $value; } $setData .= trim($rowData) . "\n"; } header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=User-2.xls"); header('Content-Transfer-Encoding: binary'); header("Pragma: no-cache"); header("Expires: 0"); echo chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $columnHeader . "\n" . $setData . "\n"); exit(); ?> |
در کد بالا ابتدا اتصال به پایگاه داده را تغییر داده جدول مورد نظر را از پایگاه داده را مشخص نمایید.توسط متغیر connect به پایگاه داده متصل می شوید.(نحوه اتصال به دیتابیس mysql در php)
در قسمت بعد header را جوری تنظیم می نماییم تا نام فایل و خروجی فایل که اکسل excel می باشد مشخص شود.بعد از آن رکوردها را یکی یکی از پایگاه داده خوانده و در خروجی فایل می نویسد.
استفاده از کتابخانه PHPExcel برای گرفتن خروجی اکسل
روش آخر استفاده از کتابخانه قدرتمند PHPExcel هستش که باید آن را به صورت جداگانه از github دانلود و در پروژه خود استفاده کنید . نحوه پیاده سازی آن به دلیل شی گرایی بودن کد ها بسیار آسان است کافیست از کد های نمونه در فولدر examples استفاده کرده و قدم به قدم اون رو در پروژه خود پیاده سازی کنید
از این کتابخانه بیشتر برای import کردن داده ها از فایل excel به دیتابیس mysql استفاده می کنیم.
مثال وارد کردن (import) فایل Excel به دیتابیس MySQL
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
<?php ob_start(); set_time_limit(3000); include '../PHPExcel-1.8/Classes/PHPExcel/IOFactory.php'; try { $connect = new PDO("mysql:host=localhost;dbname=telegram",'root',''); $connect->exec("SET CHARACTER SET UTF8"); } catch(PDOException $error){echo "error in db";} if(isset($_POST["mojudi"])){ $databasetable = "rahgiri"; // database name // Upload Excel File $name=@$_FILES["mojudi"]["name"]; $tmp=@$_FILES["mojudi"]['tmp_name']; if(is_uploaded_file($tmp)) { //select file $ext = pathinfo($name, PATHINFO_EXTENSION); $valid = array ('xls','xlsx'); $invalid = array ('php','php2','php3','php4','php5','php6','phtml','html','phpt','phps','txt'); if (in_array($ext,$invalid) ) {echo "please dont select script files ,lammer!<br>";exit;} $move=move_uploaded_file($tmp,"uploads/".$name); if($move) echo "<font color='green'><b>با موفقیت ثبت شد!</b></font>" ; }else{header('Location: index.php');exit;} $inputFileName = "uploads/".$name; try { $objPHPExcel = PHPExcel_IOFactory::load($inputFileName); } catch(Exception $e) { die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage()); } $allDataInSheet = $objPHPExcel->getActiveSheet()->toArray(null,true,true,true); $arrayCount = count($allDataInSheet); // Here get total count of row in that Excel sheet $connect->query('TRUNCATE TABLE `rahgiri`'); for($i=2;$i<=$arrayCount;$i++){ $name = trim($allDataInSheet[$i]["A"]); $ename = trim($allDataInSheet[$i]["B"]); $quantity = trim($allDataInSheet[$i]["C"]); $connect->query('SET NAMES UTF8'); $connect->query("insert into rahgiri (name, ename, quantity) values('".$name."', '".$ename."', '".$quantity."');"); } echo "<div style='font: bold 18px arial,verdana;padding: 45px 0 0 500px;'>Done!!!</div>"; unlink($inputFileName); exit; } ?> <html> <body> <div id="wrapper"> <p>mojudi</p> <form method="post" action="" enctype="multipart/form-data"> <input type="file" name="mojudi"/> <input type="submit" name="mojudi" value="Submit"/> </form> </div> </body> </html> |
جمع بندی
دریافت خروجی اکسل در php بسیار مفید و کاربردی است بخصوص اگر قصد تبادل اطلاعات بین پلتفرم های مختلف یا برنامه های مختلف حسابداری و اداری را دارید .
از این پس با آموزش های بالا و کد های php می توانید به راختی این قابلیت را در اپلیکیشن های تحت وب خود پیاده سازی کنید
برای دریافت سورس کد آموزش دریافت خروجی اکسل در php به همراه فایل SQL به باکس دانلود مراجعه کنید.
هر سوالی در پیاده سازی کدها داشتید ، از قسمت نظرات اقدام کنید . سریعا ، پاسخگوی سوالات شما هستیم .
موفق و پیروز باشید.
سلام
تو سورس کامل اول چجوری باید utf-8 تنظیم کنم که فارسی رو ساپورت کنه؟
تو سورس کامل دوم بود ولی نتونستم با سورس کد اول تنظیم کنم.
با احترام.
سلام.
فقط یه سورس کد در بخش دانلودها هست که بصورت UTF8 اطلاعات رو میخونه و میتونید اون رو دانلود و استفاده کنید
میخوام از ارایه بخونه.
اون از دیتابیس میخونه.
کافیه این رو جایگزین کنید با متغییری که آرایه شما رو شامل میشه
$rec = mysqli_fetch_row($setRec)
با سلام
من تمامی مراحل بالا رو انجام دادم ولی فایلی جهت دانلود نمیاد ، و فقط همون اطلاعات بصورت درهم چاپ میشه
لطفا راهنمایی میکنید . ممنون…
سلام مطمین باشید هدر header(“Content-Disposition: attachment; filename=User-2.xls”); داخل کد ست شده باشه
سلام اقای شفیعی وقتتون بخیر
ممنون از سایت خوبتون
من میخوام نتیجه رو داخل یه فایل در داخل هاست ذخیره کنم، یعنی فایل اکسل خروجی رو در داخل هاست ذخیره کنم برای این کار باید چه کاری انجام دهم
با تشکر
سلام.
به جای echo اون مقدار رو داخل فایل ذخیره کنید
با تابع file_put_contents
ممنون اقای شفیعی همان کار رو کردم ولی موقع باز کردن فایل اکسل، مینویسه فایل پشتیبانی نشد و باز نمیشه
قبل ذخیره از ob_clean() استفاده کنید شاید هدر فایل بهم میریزه
ممنون عذرخواهم، مشکل از نرم افزاری بود که فایل رو باز میکردم که با نصب نسخه جدیدش حل شد
با تشکر
موفق و پیروز
سلام . خیلی متشکرم بابت اینهمه مطالب آموزشی شما
اما من در خواندن فایل اکسل مشکل دارم وفقط با نوشتن کد زیر به تعداد زیادی از خطای زیر مواجه می شوم. لطفا اگه میشه راهنماییم کنید. باتشکر
من فقط خط اول خطا رو میگذارم. فکر کنم شما با یک نگاه متوجه اشکال من بشوی.
Deprecated: Array and string offset access syntax with curly braces is deprecated in /…/Classes/PHPExcel/Shared/String.php on line 526 Deprecated: Array and string offset access syntax with curly braces is deprecated in…
من فقط همین سه خط زیر رو می نویسم و در خروجی با خطای فوق مواجه می شوم
include(‘PHPExcel/IOFactory.php’);
$objPHPExcel = PHPExcel_IOFactory::load(‘Book1.xls’);
سلام
کتابخانه PHPExcel دیگه توسعه داده نمیشه و با ورژن های جدید php سازگار نیست و به جاش از PhpSpreadsheet استفاده کنید :
https://phpspreadsheet.readthedocs.io/en/latest/
سلام. تشکر از آموزش های خوبتون
آیا به جز composer روش دیگری برای استفاده از کتابخانه phpspreadsheet در هاست اشتراکی وجود دارد؟
سلام. خوشحالیم که مفید واقع شده
ابتدا از طریق کامپوزر روی سیسنم شخصی کتابخانه رو نصب کنید تا فایل autoload ایجاد شود و بعد فولدر کتابخانه را zip کنید و روی هاست اشتراکی اپلود کنید
سلام
یه دیتای زیادی رو میخوام خروجی بگیرم.
که زمان خروجی گرفتن به این شکل ارور میده بهم
اما زمانی که تعداد کمی رو میخوام خروجی بگیرم. مشکلی پیدا نمیکنه و به راحتی خروجی میده
به چه شکل میتونم دیتای زیادی رو خروجی بگیرم؟
سلام.
در هاست اشتراکی مدت زمان اجرای اسکریپت ۶۰ثانیه هست.
آموزش های زیر رو ببینید :
https://netparadis.com/execution-time-limit-in-php
https://netparadis.com/managing-cron-jobs-with-php
همه کل کد خروجی از ارایه رو از سایتتون کپی کردم اما فایل اکسل خالیه دانلود میشه
سلام. احتمالا کانکشن دیتابیستون اشتباهه. کد باید مطابق اطلاعات خودتون ویرایش بشه و php هم متوسط بلد باشید
سلام
می خواستم از طریق php فایل excel رو به شکلی تولید کنم که در یکی از cellها یک لینک هایپر داشته باشم که فایل یا آدرس اینترنتی رو باز کنه.
اگر راهنمایی کنید ممنون میشم
سلام.
درخواست شما بررسی میشه
سلام ببخشید من یک مشکل دارم اگر میشه حل کنید 🙂
۱) چرا توی اکسل همه ستون هارو توی یک رشته می اورد
۲)کلمات یا اعداد فارسی را علامت سوال می نویسد
۳)و همینطور تمام اطلاعاتی که دریافت می شود به شکل رشته است
ممنون میشم اگر به سوال من پاسخ دهید (لطفا پاسخ خود را با شماره بیان کنید که من بفهمم کدام جواب مال کدام سوال است)
محمد رفیعی فرد
سلام
مطلب خوبی هست ولی چرا فارسی ها رو به صورت نا مفهوم میذاره توی فایل؟؟
بجای اینکه بنویسه سلام اینو تحویل من داده سلام 😂
از دیتابیس درست میخونه(وقتی vardump می گیرم همه چی رو درست نشون میده اما توی فایل اینطوری میشه!!)
سلام. خوشحالیم که مفید واقع شده.
اگر از کدهای این بخش دریافت خروجی اکسل در php از دیتابیس MySQL استفاده می کنید باید اوکی باشه چون در کدنهایی میبینید که از utf8 استفاده کردیم و همه چیز باید بصورت درست در فایل ایجاد شده اکسل نمایش داده بشه.
سلام.ممنون از آموزشتون
یه سوال داشتم ممنون میشم پاسخ بدید.اینکه هر نوع فایل اکسلی رو میشه ایمپورت کرد؟مثلا فایلی که داده هاش از فرمول بدست میان و فرمول ها در یک شیت مجزا نوشته شده. و اینکه آیا میشه همه اکسل رو ایمپورت نکنیم و مثلا تنها چنتا ستون از یک فایل اکسل رو ایمپورت کنیم.
سلام. خوشحالیم که مفید واقع شده.
فایل های اکسلی که خروجی رشته مانند داشته باشند رو میتونید ایمپورت کنید. بله میتونید ستون هایی که نیاز دارید رو فقط ایمپورت کنید که همه چیز به شرط شما در کد php بستگی دارد و میشه انجام داد.
موفق باشید.
با سلام ممنون از لطف شما عالی بود
لطفا آموزش Import کردن اکسل به ارایه رو هم اگر مقدور است بگذارید
با تشکر
سلام خوشحالیم که مفید واقع شده.
بسیار ساده هست و کمی اگر روی کدها کار کنید مطمینا خروجی خوبی میگیرید. اگر هم حین انجام مشکل داشتید میتونید اینجا اعلام کنید راهنمایی میشه.
موفق باشید.
باسلام و ممنون از سایت بسیار مفیدتون
من از این کد استفاده می کنم.مشکلی که هست اینه که من یک ستون تاریخ دارم در جدولم به شکل:۲۰۲۰/۲/۲۷ برای مثال. ولی در خروجی اکسل بهم به صورت#### نمایش میده این ستون رو.پیشاپیش ممنون از راهنماییتون.
سلام. خوشحالیم که مفید واقع شده.
همینک تست و خروجی دریافت شد. چنین مشکلی با تاریخ ها وجود ندارد. دقت کنید که تست ما روی تاریخ ذخیره شده با اعداد لاتین بود و اعداد فارسی ممکن است این مشکل رو داشته باشند.
به هر حال روش حل برای اینکه با اعداد فارسی این مشکل رو نداشته باشید. در کد مورد نظر این خط
echo chr(255).chr(254).iconv("UTF-8", "UTF-16LE//IGNORE", $columnHeader . "\n" . $setData . "\n");
رو به
echo $columnHeader . "\n" . $setData . "\n";
تغییر بدید تا مشکل حل بشه
موفق باشید.
با سلام، خیلی ممنون از آموزش خوبتون.
فقط میشه یاد بدین چطوری میشه اخرین خونه، جمع کل را اضافه کرد ؟
سلام. خوشحالیم که مفید واقع شده.
در هر دو مثال که از php خالص استفاده کردیم. در یکی داده ها را از آرایه و دیگری از دیتابیس خواندیم.
برای بدست آوردن جمع آنها می توانید از تابع count() استفاده کنید و در نهایت در خروجی که داخل حلقه foreach اکو و در دیگری داخل حلقه while ایمپلود می شود می توانید مقدار خروجی count() را اضافه کنید.
موفق باشید.
خیلی ممنونممم
درود بر شما
از کجا می تونم دریافت کنم؟
سلام. همانطور که در پاسخ قبلی گفته شد, یک مثال از کتابخانه PHPExcel به این پست اضافه شد.
موفق باشید.
واقعا کارم راه افتاد، ممنونم.
ای کاش یک آموزش مقدماتی استفاده از کتابخانه Excel php هم قرار بدید. شامل روش تعریف کردن کلاس و بررسی یکی از مثالهای کتابخانه
ممنون
سلام. مثال ایمپورت کردن فایل اکسل به یکی از جداول دیتابیس با PHPEXcel اضافه شد.
موفق باشید.
سلام
ممنون از آموزش خوبتون
در کد پایانی اگه بخوام بجای دانلود فایل اکسل، اون رو در هاست ذخیره کنم چی کار باید بکنم؟
سلام. خوشحالم که مفید واقع شده.
ابتدا دستور های header را کامنت کنید و به جای echo کردن از تابع file_put_contents برای ذخیره در فایل بهره ببرید.
file_put_contents(‘myfile.xls’, chr(255).chr(254).iconv(“UTF-8”, “UTF-16LE//IGNORE”, $columnHeader . “\n” . $setData . “\n”), FILE_APPEND);
موفق باشید.
امکانش هست این تیکه کد را برای مثالی که از php خالص استفاده کردین رو هم آموزش بدین ؟
من اومدم تو اون مثال آرایه هامو تو آرایه اصلی اینطوری تعریف کردم:
$newArray = array(
‘ردیف’ => $key,
“شرح” => $info,
“خرج” => $kharj,
“دریافتی” => $daryafti,
);
array_push($data, $newArray);
چطوری با دستور بالا که لطف کردین، سیوش کنیم؟
خیلی ممنونم…
این کدی که ارسال کردید اوکی هست و اگر به مثال اولی “دریافت خروجی اکسل در php از آرایه ها” اضافه کنید در خروجی اکسل نمایش داده میشه.
این کار ها رو کردم
منظورم قسمت بدنه اصلی کد بود.
اتصالات و جدول ها رو اصلاح کردم.
خروجی فارسی مشکل داشتم با PHP 7
با php نسخه ۷ تست نکردیم . در این مورد جستجو کنید در سایت هایی مثل stackoverflow میتونید جواب سوالتون رو پیدا کنید.
سلام . من عینا کد شما رو کپی کردم فقط آدرس اتصال دیتابیس رو تنظیم کردم.
هم کاراکتر های فارسی بهم خورد و هم اکسل دانلود شده اصلا هدر ستون نداشت
سلام. علاوه بر اطلاعات اتصال به دیتابیس نیاز است در کویری نام جدول رو هم تغییر بدید و همچنین در $columnHeader نام ستون های جدول رو لحاظ کنید.
موفق باشید.
ممنونم ازتون که پاسخ دادید. اما من فاسل رو از github دانلود کردم و بعد اکسپورت و بعدشم فراخوانی. همین… هیچ کار دیگه ای نکردم اما نمیدونم مشکلش کجاست…
همانطور که خدمتتون گفته شد مشکل اصلی نداشتن ساختار مناسب فایل خروجی است که به احتمال زیاد هم داده ها و ستون ها درست چیده نشدن که حتما نیازه که هی تست و باگ یابی کنید تا نهایتا مشکل حل بشه و از اینجا نمیشه راهنمایی بیشتری ارایه داد.
موفق باشید.
سلام. ممنونم
اما من وقتی از نمونه کدهای خود phpexcel هم استفاده میکنم. بعد از دانلود شدن فایل اکسل وقتی میخوام بازش کنم خطا میده. یعنی نمونه کد رو بدون هیچ دستکاری خاصی.
خطای excel cannot open file
سلام. احتمالا عملیات قرار گیری داده ها به درستی انجام نشده که بهتره داده ها و اتصال mysql و همچنین مچ بودن اونها با فیلدها و تعداد فیلدهای مشخص شده در اسکریپت یکسان باشه . با بررسی و رفع این موارد مشکل حل میشه .
موفق باشید.
عالی بود مررررسی
خوشحالم که مفید واقع شده . موفق باشید.
سلام.درمورد استایل دهی فایل اکسل اصلا صحبت نشده.اگه میشه یه مثال بزنید
سلام . استایل خاصی نیاز نیست . هر چه قدر ستون در فایل اکسل دارید را همان مقدار در متغییر $columnHeader طبق فرمتی که داره قرار میدید و همچنین ستون های دیتابیس رو هم به همان تعداد می سازید.
موفق باشید.
بله.منظورم چیز دیگه ای هست.مثلا اینکه بخوام دو تا سلول merge بشه یا رنگ سلول تغییر کنه و …
یا اینکه صفحه اکسل right to left بشه.خیلی لازم دارم همچین چیزی رو.اگه میشه یه راهنمایی بکنید
کتابخانه PHPExcel رو چک کنید احتمالا همچین قابلیتی رو داره .
موفق باشید.
میشه آموزش این کتابخونه رو بذارید ؟یا حداقل منبعشو بذارید ؟
سلام . از طریق گیت هاب میتونید دریافت کنید. البته این نسخه https://github.com/PHPOffice/PHPExcel دیگه پشتیبانی نمیشه و همان تیم توسعه دهنده ورژن جدید از اون به نام
PhpSpreadsheet
رو منتشر کردند که از لینک زیر قابل دسترسه .
https://github.com/PHPOffice/PhpSpreadsheet
موفق باشید.
درود من از پی اچ پی خروجی اکسل میگیرم ولی خروجی زبانهای فارسی را بهم ریخته نمایش میدهد و باید با نت پد آن را کودینگ کنم تا درست شود راهی هست که مستقیم اطلاعات را صحیح نمایش دهد . سپاسگزارم
سلام . بهتر است از کتابخانه PHPExcel استفاده کنید که بدون هیچ تداخل و مشکلی خروجی اکسل رو دریافت کنید که ما هم در پروژه هایی که مینویسیم از این لایبرری بهره می بریم.
موفق و پیروز باشید
سلام
کد زیر در زمان خروجی متون فارسی بانک را به شکل نادرست نمایش می دهد . کجای کد ایراد داره؟؟؟
set_charset(“utf8″);
$setRec = mysqli_query($conn, $query_m);
$columnHeader = ”;
$columnHeader = “ردیف” . “\t” . “نام” . “\t” . “نام خانوادگی” . “\t”. “نام پدر” . “\t”. “کد ملی” . “\t”. “تاریخ تولد” . “\t”. “جنسیت” . “\t”. “پایه تحصیلی” . “\t”. “استان” . “\t”. “شهرستان” . “\t”. “مدرسه” . “\t”. “مراحل” . “\t”. “تاریخ عضویت” . “\t”;
$setData = ”;
while ($rec = mysqli_fetch_row($setRec)) {
$rowData = ”;
foreach ($rec as $value) {
$value = ‘”‘ . $value . ‘”‘ . “\t”;
$rowData .= $value;
}
$setData .= trim($rowData) . “\n”;
}
header(“Content-type: application/octet-stream”);
header(“Content-Disposition: attachment; filename=User_Detail_Reoprt.xls”);
header(‘Content-Transfer-Encoding: binary’);
header(“Pragma: no-cache”);
header(“Expires: 0”);
echo chr(255).chr(254).iconv(“UTF-8”, “UTF-16LE//IGNORE”, $columnHeader . “\n” . $setData . “\n”);
exit()
?>
سلام . charset رو هنگام اتصال به دیتابیس به صورت صحیح ست نکردید
این خط
$conn->set_charset("utf8");
را بعد از اتصال به دیتابیس ویا همان قبل از اجرای کویری sql خود اضافه کنید , مشکل حل میشه (در کد شما قبل از
$setRec = mysqli_query($conn, $query_m);
باید اضافه شه)موفق باشید