PDA

View Full Version : حرفه ای: خروجی xls توسط php



رضا قربانی
شنبه 06 مهر 1392, 18:46 عصر
سلام به همگی دوستان گل پی اچ پی کار .

با این کدی که آماده کردم می تونید از سایتتون خروجی xls اکسل بگیرید .

کافی کدها رو جایگزین کنید

منتها یه ایراد داره اینه که نتونستم فارسی درش بیارم ، خیلی تلاش کردم و یا شاید روی سیستم من مشکل داشت ، خواهشمندم که هر کسی تونست اینجا بذاره تا همه استفاده کنند.
با تشکر


function xlsBOF() {
echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0);
return;
}
//*********************************************
function xlsEOF() {
echo pack("ss", 0x0A, 0x00);
return;
}
//*********************************************
function xlsWriteNumber($Row, $Col, $Value) {
echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
echo pack("d", $Value);
return;
}
//*********************************************
function xlsWriteLabel($Row, $Col, $Value ) {
$L = strlen($Value);
echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
echo $Value;
return;
}
//*********************************************
header("Pragma: public");
header("Expires: 0");

header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header('Content-Type: application/vnd.ms-excel; charset=utf-8');
header("Content-Disposition: attachment;filename=Xsl-Ghorbani.xls ");
header("Content-Transfer-Encoding: binary ");


xlsBOF();
//*********************************************
xlsWriteLabel(0,0,"test test test test test");//خروجی اکسل برای بچه های گل برنامه نویس
//*********************************************
// Make column labels. (at line 3)
xlsWriteLabel(2,1,"First Name");
xlsWriteLabel(2,2,"Last Name");
xlsWriteLabel(2,3,"E-mail");
xlsWriteLabel(2,4,"Phone");
xlsWriteLabel(2,5,"Message");
xlsWriteLabel(2,6,"B First Name");
xlsWriteLabel(2,7,"B Last Name");
xlsWriteLabel(2,8,"B Phone");
xlsWriteLabel(2,9,"B E-mail");
xlsWriteLabel(2,10,"B Stuff");
$xlsRow = 3;

//************while($row=mysql_fetch_array($result)) {


xlsWriteLabel($xlsRow,1,"رضا");////$row['fname']
xlsWriteLabel($xlsRow,2,"قربانی");
xlsWriteLabel($xlsRow,3,"php_seo@yahoo.com");
xlsWriteLabel($xlsRow,4,"09119171500");
xlsWriteLabel($xlsRow,5,"برید حالشو ببرید");
xlsWriteLabel($xlsRow,6,"bfname");
xlsWriteLabel($xlsRow,7,"blname");
xlsWriteLabel($xlsRow,8,"btel");
xlsWriteLabel($xlsRow,9,"bemail");
xlsWriteLabel($xlsRow,10,"bstuff");
$xlsRow++;
////////////////////// }
xlsEOF();
exit();


موفق و پیروز باشید

AliRezaPro
شنبه 06 مهر 1392, 19:14 عصر
ار این کتابخانه استفاده کنید

http://phpexcel.codeplex.com/

shahriyar3
شنبه 06 مهر 1392, 19:34 عصر
ار این کتابخانه استفاده کنید

http://phpexcel.codeplex.com/
ماشالا دست به سرچت خیلی خوبه ها :-)
این کلاس حتما احتیاج به pattern داره برای خوندن خیلی دردسر داره . فقط هم میتونه فرمت همون pattern بخونه
بجاش گوگل یه پروژه داره excel reader که فقط کافیه آدرس فایل اکسل و بهش بدین
تو قسمت google projects که برای ایرانی ها فیلتره داکیومنت هاش و سورسش هست برای استفاده
از فارسی هم پشتیبانی میکنه

Unique
یک شنبه 07 مهر 1392, 01:53 صبح
نمیدونم چرا وقتی فرمت مناسبی مثل csv هست از xls استفاده میکنید ،‌ csv فرمت راحت تر و خیلی تر و تمیز تره و این دنگ و فنگها را نداره ! هر کسی هم خواست توی excel بازش میکنه و به فرمت excel ذخیره میکنه !

MMSHFE
یک شنبه 07 مهر 1392, 08:03 صبح
لطفاً کدتون رو در تاپیک Snippetهای PHP هم قرار بدین.

رضا قربانی
یک شنبه 07 مهر 1392, 09:07 صبح
نمیدونم چرا وقتی فرمت مناسبی مثل csv هست از xls استفاده میکنید ،‌ csv فرمت راحت تر و خیلی تر و تمیز تره و این دنگ و فنگها را نداره ! هر کسی هم خواست توی excel بازش میکنه و به فرمت excel ذخیره میکنه !
خب داداشی گلم بذار استفاده کنیم . (فارسی هم پشتیبانی کنه) .
روش های مختلفی هست : مثلا برای ذخیره کردن به 2007 باید یک سری کدها رو گذاشت و برای 2003 یکسری کدها . برای csv یکسری کدها . (خواستید بگید بذارم)

مهم پشتیبانی از زبان شیرین پارسی ست.

AliRezaPro
یک شنبه 07 مهر 1392, 10:14 صبح
ماشالا دست به سرچت خیلی خوبه ها :-)
این کلاس حتما احتیاج به pattern داره برای خوندن خیلی دردسر داره . فقط هم میتونه فرمت همون pattern بخونه
بجاش گوگل یه پروژه داره excel reader که فقط کافیه آدرس فایل اکسل و بهش بدین
تو قسمت google projects که برای ایرانی ها فیلتره داکیومنت هاش و سورسش هست برای استفاده
از فارسی هم پشتیبانی میکنه
کاملترین کلاس کار با Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML و .... را دارد و هر جور امکانی را هم بخواهید (فرمول , چارت و ....) هم بهتون میدهد.با uf8 هم هیچ مشکلی ندارد و هر جوری هم که بخواید میتوانید خروجی بگیرید . pattern ؟ خیر همچین مشکلی ندارد . یا حداقل بنده ندیدم
کلاس رو توصیه میکنم دانلود کنید و استفاده کنید . قاعدتا هیچ مشکلی با utf8 و فرمت های که گفتم نخواهید داشت :) و اینکه بله یاد گرفتن نوع سرچ کردن و پیدا کردن محتوایی که مدنظر دارید نیاز به تجربه است :)


error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Asia/Tehran');

define('EOL',(PHP_SAPI == 'cli') ? PHP_EOL : '<br />');

/** Include PHPExcel */
require_once '../Classes/PHPExcel.php';


// Create new PHPExcel object
echo date('H:i:s') , " Create new PHPExcel object" , EOL;
$objPHPExcel = new PHPExcel();

// Set document properties
echo date('H:i:s') , " Set document properties" , EOL;
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("PHPExcel Test Document")
->setSubject("PHPExcel Test Document")
->setDescription("Test document for PHPExcel, generated using PHP classes.")
->setKeywords("office PHPExcel php")
->setCategory("Test result file");


// Add some data
echo date('H:i:s') , " Add some data" , EOL;
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'سلام')
->setCellValue('B2', 'دنیا!')
->setCellValue('C1', 'سلام')
->setCellValue('D2', 'دنیا!');

// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A4', 'Miscellaneous glyphs')
->setCellValue('A5', 'علیرضا هستم');


$objPHPExcel->getActiveSheet()->setCellValue('A8',"Hello\nWorld");
$objPHPExcel->getActiveSheet()->getRowDimension(8)->setRowHeight(-1);
$objPHPExcel->getActiveSheet()->getStyle('A8')->getAlignment()->setWrapText(true);


// Rename worksheet
echo date('H:i:s') , " Rename worksheet" , EOL;
$objPHPExcel->getActiveSheet()->setTitle('Simple');


// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


// Save Excel 2007 file
echo date('H:i:s') , " Write to Excel2007 format" , EOL;
$callStartTime = microtime(true);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save(str_replace('.php', '.xlsx', __FILE__));
$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;

echo date('H:i:s') , " File written to " , str_replace('.php', '.xlsx', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
// Echo memory usage
echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;


// Save Excel 95 file
echo date('H:i:s') , " Write to Excel5 format" , EOL;
$callStartTime = microtime(true);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save(str_replace('.php', '.xls', __FILE__));
$callEndTime = microtime(true);
$callTime = $callEndTime - $callStartTime;

echo date('H:i:s') , " File written to " , str_replace('.php', '.xls', pathinfo(__FILE__, PATHINFO_BASENAME)) , EOL;
echo 'Call time to write Workbook was ' , sprintf('%.4f',$callTime) , " seconds" , EOL;
// Echo memory usage
echo date('H:i:s') , ' Current memory usage: ' , (memory_get_usage(true) / 1024 / 1024) , " MB" , EOL;


// Echo memory peak usage
echo date('H:i:s') , " Peak memory usage: " , (memory_get_peak_usage(true) / 1024 / 1024) , " MB" , EOL;

// Echo done
echo date('H:i:s') , " Done writing files" , EOL;
echo 'Files have been created in ' , getcwd() , EOL;

رضا قربانی
یک شنبه 07 مهر 1392, 10:22 صبح
کاملترین کلاس کار با Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML و .... را دارد و هر جور امکانی را هم بخواهید (فرمول , چارت و ....) هم بهتون میدهد.با uf8 هم هیچ مشکلی ندارد و هر جوری هم که بخواید میتوانید خروجی بگیرید . pattern ؟ خیر همچین مشکلی ندارد . یا حداقل بنده ندیدم
کلاس رو توصیه میکنم دانلود کنید و استفاده کنید . قاعدتا هیچ مشکلی با utf8 و فرمت های که گفتم نخواهید داشت :) و اینکه بله یاد گرفتن نوع سرچ کردن و پیدا کردن محتوایی که مدنظر دارید نیاز به تجربه است :)
آقا شهریار چیز دیگه ای گفتن . می گن هر کسی هر پستی میزنه بهش لینک میدی.

کد بذار ببینیم . با کد راهنمایی کنید . با کد به طرف کمک کنید . با کد ثواب کنید .
موفق باشید

AliRezaPro
یک شنبه 07 مهر 1392, 10:31 صبح
آقا شهریار چیز دیگه ای گفتن . می گن هر کسی هر پستی میزنه بهش لینک میدی.

کد بذار ببینیم . با کد راهنمایی کنید . با کد به طرف کمک کنید . با کد ثواب کنید .
موفق باشید
برای استادی مانند شما همان یک سرنخ هم باید کافی باشد :)
و اینکه به دیده بنده تا جایی که امکانش هست خود یادگیری رو به طرف بسپاریم بهتر است تا اینکه با تکه کد ناقص ما یادگیری ناقص صورت گیرد. کد هم اگر نیاز بود میزاریم ولی باید کار اصلی رو پرسنده ی سئوال دنبال کند .مطمئن باشید بسیاری از مشکلات فروم با همین تکنیک حل خواهد شد.اما گاها کاربران بعد از تحقیق فراوان به جایی نمیرسند که داستان در آن شرایط فرق خواهد داشت :) اگر در فروم های خارجی هم دقت کرده باشید پرسنده ی سئوال بعد از کلی تحقیق و دیدن سایت ها و فروم های مختلف وقتی به جواب نمیرسد پست راهنمایی طلب میکند . اما اگر دقت کرده باشید 99 % سئوال های این فروم , حتی سناریو رو هم اگر سرچ کنید به جواب میرسید ! :)

shahriyar3
یک شنبه 07 مهر 1392, 10:57 صبح
کاملترین کلاس کار با Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc .ods, Gnumeric, PDF, HTML و .... را دارد و هر جور امکانی را هم بخواهید (فرمول , چارت و ....) هم بهتون میدهد.با uf8 هم هیچ مشکلی ندارد و هر جوری هم که بخواید میتوانید خروجی بگیرید . pattern ؟ خیر همچین مشکلی ندارد . یا حداقل بنده ندیدم
کلاس رو توصیه میکنم دانلود کنید و استفاده کنید . قاعدتا هیچ مشکلی با utf8 و فرمت های که گفتم نخواهید داشت :) و اینکه بله یاد گرفتن نوع سرچ کردن و پیدا کردن محتوایی که مدنظر دارید نیاز به تجربه است :)

از داکیومنت کد های sample برنامه رو گذاشتی و قسمت message شو عوض کردی اسم خودت و به فارسی نوشتی که بگی از utf-8 پشتیبانی میکنه؟!! مگه من گفتم نمیکنه؟!!!
داری یه فایل excel ایجاد میکنی من گفتم برای خوندن یه فایل نیاز به pattern داره نه برای ایجاد کردن یه صفحه خالی که!!!
شما که خوب سرچ میکنی یکم بیشتر تحقیق کن ببین منظورم از pattern موقع خوندن فایل اکسل چی هستش. :-)

دست استارتر تاپیک هم درد نکنه بابت نوشتن فانکشن. من جواب آقای علیرضا رو دادم که لینک کلاس phpexcel و گذاشته بود تو تاپیک شما

رضا قربانی
یک شنبه 07 مهر 1392, 11:07 صبح
شهریار جان اینجا فقط واسه یادگیری هست ، علیرضای عزیز هم زحمت کشیدن روش خوشون رو گذاشتن.

یه سوال از علیرضا جان عزیز :لبخند: :
این کلاسی که گذاشتی 4 مگابایت هست من هر یک از سایت هایی که میسازم شاید به یک مگابایت نرسه (با ادمین و تصویر و سایت و همه)

دوم این که آیا این کلاس بهت امکان دانلود فایل خروجی رو میده ؟ یعنی روی دکمه ای کلیک شد بهت خروجی بده در درایو کامپیوترتون که خودتون مایلید ذخیره بشه. (مثل چیزی که من گذاشتم)

ممنون میشم .

shahriyar3
یک شنبه 07 مهر 1392, 11:19 صبح
شهریار جان اینجا فقط واسه یادگیری هست ، علیرضای عزیز هم زحمت کشیدن روش خوشون رو گذاشتن.

رضا جان منم میخوام یاد بگیرم دیگه. قصدم بحث علمی هست فقط , برداشت بد نکنید.ما همه دوستیم باهم :-)

من سال پیش خیلی سر فایل های اکسل سختی کشیدم بخاطر همین این کلاسی که آقای علیرضا گذاشته رو دقیقا میدونم چیه و چه مشکلاتی داره بخاطر همین میگم.

رضا قربانی
یک شنبه 07 مهر 1392, 16:43 عصر
لطفاً کدتون رو در تاپیک Snippetهای PHP هم قرار بدین.
به روی چشم شهرکی جون ، فقط این مشکل فارسیش رو حل کنیم ، حتما (البته با کمک بچه های این تاپیک)

Unique
یک شنبه 07 مهر 1392, 17:13 عصر
راستش باز هم دلیلی برای استفاده از xls نمیبینم وقتی میشه با csv که یک فایل متنی ساده هست و میشه با BOM مشخص کرد که utf-8 هست و همه ایدتور ها هم اون را به راحتی تشخصی میدهند و libre office و open office و ms office هم به راحتی تشخصیش میدهند. مشکلی هم با زبان فارسی با utf-8 نداره !

رضا قربانی
یک شنبه 07 مهر 1392, 18:02 عصر
راستش باز هم دلیلی برای استفاده از xls نمیبینم وقتی میشه با csv که یک فایل متنی ساده هست و میشه با BOM مشخص کرد که utf-8 هست و همه ایدتور ها هم اون را به راحتی تشخصی میدهند و libre office و open office و ms office هم به راحتی تشخصیش میدهند. مشکلی هم با زبان فارسی با utf-8 نداره !
Unique جونم باز که داری حرف خودت رو میزنی .
می گم با utf-8 مشکل داره ،

اگر امکانش هست روش خودتون رو با کد اینجا بذارید تا ما از شما چیز جدید یاد بگیریم ، من خیلی با این فایل سرو کله زدم ، خسته شدم ، شما کمکمون کنید .
تشکر

thacker
یک شنبه 07 مهر 1392, 19:05 عصر
این فایل ضمیمه رو اینکلود کنید درست میشه ... من از این استفاده میکنم برای خروجی xls ...
111315

AliRezaPro
دوشنبه 08 مهر 1392, 09:19 صبح
از داکیومنت کد های sample برنامه رو گذاشتی و قسمت message شو عوض کردی اسم خودت و به فارسی نوشتی که بگی از utf-8 پشتیبانی میکنه؟!! مگه من گفتم نمیکنه؟!!!

اگر از لحن بد شما بگزریم :) (که قطعا نیتتان خیر بوده :) ) بله برای تست اینکارو کردم که دیدم مشکلی نیست .ضمن اینکه استارتر تاپیک مشکل فارسی داشتند و دارند و اینکه ایشون برای خواندن نمی خواستند .

این کلاسی که گذاشتی 4 مگابایت هست من هر یک از سایت هایی که میسازم شاید به یک مگابایت نرسه (با ادمین و تصویر و سایت و همه)

دوم این که آیا این کلاس بهت امکان دانلود فایل خروجی رو میده ؟ یعنی روی دکمه ای کلیک شد بهت خروجی بده در درایو کامپیوترتون که خودتون مایلید ذخیره بشه. (مثل چیزی که من گذاشتم)

ممنون میشم .
فکر کنم بشه متعلقاتی رو که نیاز ندارید از کلاس پاک کنید و استفاده کنید که به حجم دلخواه برسه .همانطور که گفتم کلاس بسیار بسیار کاملی هست که هر جور امکانی بخواهید براتون فراهم میکنه. بله امکان دانلود هم هست . اینجور که تو فایل های مثال دیدم با اضافه کردن این هدر ها امکان دانلود به وجود میاد قربانی جان (فامیلیه بنده هم قربانی هست :) ) خودتان تست کنید شاید واقعا به کارتون نیاد یا شابد هم اومد :)


// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

رضا قربانی
دوشنبه 08 مهر 1392, 12:14 عصر
لاین 60 پست اول رو یه نگاه بندازید ، من به این صورت فارسی کردم منتها دو کلمه اول رو گرفته :


xlsWriteLabel($xlsRow,5, iconv('utf-8','CP1256','برید حالشو ببرید'));

تست بگیرید ببینید می تونید کمکمون کنید


فکر کنم بشه متعلقاتی رو که نیاز ندارید از کلاس پاک کنید و استفاده کنید که به حجم دلخواه برسه .همانطور که گفتم کلاس بسیار بسیار کاملی هست که هر جور امکانی بخواهید براتون فراهم میکنه. بله امکان دانلود هم هست . اینجور که تو فایل های مثال دیدم با اضافه کردن این هدر ها امکان دانلود به وجود میاد قربانی جان (فامیلیه بنده هم قربانی هست :) ) خودتان تست کنید شاید واقعا به کارتون نیاد یا شابد هم اومد :)


آقای قربانی عزیز مشکل شما اینه که نه نگاه به کدها میندازید و نه تست می کنید و فقط لینک میدید ، تست کنید بعد پیام بذارید ، خب اینی که الآن داری می گی رو که من خودم توی پست اول نوشتم .
اگر هدفت خیره با تست کردن به تاپیک پاسخ بدید (نه فقط این تاپیک به تمام تاپیک ها)


این فایل ضمیمه رو اینکلود کنید درست میشه ... من از این استفاده میکنم برای خروجی xls ...
CP1256.zip (http://barnamenevis.org/attachment.php?attachmentid=111315&d=1380470662)من اینکلود کردم درست نشد ، لطفا تست کنید و درست و درمون اینجا قرار بدید


از دوستان عزیز هر کسی هر جا هر چیزی شنیده و دیده با تست و جواب گرفتن لطفا جواب ارسال کنند .
تشکر

AliRezaPro
دوشنبه 08 مهر 1392, 12:59 عصر
آقای قربانی عزیز مشکل شما اینه که نه نگاه به کدها میندازید و نه تست می کنید و فقط لینک میدید ، تست کنید بعد پیام بذارید ، خب اینی که الآن داری می گی رو که من خودم توی پست اول نوشتم .
اگر هدفت خیره با تست کردن به تاپیک پاسخ بدید (نه فقط این تاپیک به تمام تاپیک ها)
دلیل این کارو در پست های قبلی توضیح دادم بهتره که بخونید . نمیدونم چرا به این شکل موضع گرفتید . در هر صورت کاری که میخواید انجام بدید رو براتون انجام دادم . لقمه رو نباید برای استادی چون شما آماده کرد . خودتون با کمترین سرنخ باید دنبالش میرفتید و تست میکردید.
فقط می خواید یه فایل اکسل درست کنید و برای دانلود بزارید ؟ با این کلاس امکانش هست ! میتونید از رکوردهای دیتابیس هم به همین مموال اکسپورت بگیرید !
کدهای تست رو براتون با کمی دستکاری اینجا میزارم (فقط قسمت فارسی رو . اقای شهریار باز نگن شما کد رو کپی کردی و فقط قسمت message (!!!!) رو دست زدین :) )

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');

if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser');

/** Include PHPExcel */
require_once 'Classes/PHPExcel.php';


// Create new PHPExcel object
$objPHPExcel = new PHPExcel();

// Set document properties
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
->setKeywords("office 2007 openxml php")
->setCategory("Test result file");


// Add some data
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A1', 'علیرضا')
->setCellValue('B1', 'قربانی!')
->setCellValue('C1', 'سلام')
->setCellValue('D1', 'دنیا!');

// Miscellaneous glyphs, UTF-8
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A4', 'برید حالشو ببرید')
->setCellValue('A5', 'alireza.professional@yahoo.com');

// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('Simple');


// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
انشالله مشکلتون حل شده باشه .
اخرین پست بنده در این تاپیک :چشمک:

رضا قربانی
دوشنبه 08 مهر 1392, 15:43 عصر
خب داداشی گلم کل حرفام اینه که اینو که الآن داری می گی همون اول بگو ، همون اول تست بگیر و کمک کن (الکی به ما لینک و این چیزا نده ، خب خودمون می تونیم بریم دنبال لینک)

اصلا واسه چی این فروم اینجا ایجاد شده ؟؟؟؟؟؟؟؟ تا زودتر به هدفمون برسیم و از تجربیات هم استفاده کنیم .
همین

AliRezaPro
چهارشنبه 10 مهر 1392, 14:12 عصر
طبق فرمایشاتی که تو یاهو داشتید(تصمیم بر این شد بازم پست بزنم) براتون نوشتم , هر جور که بخواهید میتوانید از این کلاس استفاده کنید. به همین صورت میتوانید از استایل دلخواه خودتون استفاده کنید برای خروجی و همینطور میتوانید چارت و .. هم بهش اضافه کنید. . براتون کد رو clean کردم تا راحت تر بتوانید استفاده کنید


function connection()
{ // this connection for connect to mysql databse
try {
$pdoCfg = array(
PDO::ATTR_PERSISTENT => true,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'");
$pdo = new PDO("mysql:host=localhost;dbname=wp;charset=UTF-8", "root", "", $pdoCfg);
return $pdo;
}
catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
}

error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
date_default_timezone_set('Europe/London');

if (PHP_SAPI == 'cli')
die('This example should only be run from a Web Browser');

require_once 'Classes/PHPExcel.php';


$objPHPExcel = new PHPExcel();
$flag = connection();
$select = $flag->prepare("SELECT content FROM wp.pga_support");
$select->execute();


for ($i = 0; $row = $select->fetch(PDO::FETCH_ASSOC); $i++) {
$objPHPExcel->setActiveSheetIndex(0)
->setCellValue('A'.$i, $row['content']);

}



// Rename worksheet
$objPHPExcel->getActiveSheet()->setTitle('AliRezaPro');


// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$objPHPExcel->setActiveSheetIndex(0);


// Redirect output to a client’s web browser (Excel5)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="ExportTable.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');

// If you're serving to IE over SSL, then the following may be needed
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;

رضا قربانی
چهارشنبه 10 مهر 1392, 14:50 عصر
تشکر داداشی گلم - کلی ثواب کردی
من جایی ندیده بودم که از فارسی پشتیبانی کنه که زحمتشو کشیدید .
کارم راه افتاد
موفق باشید

mehdi4467
چهارشنبه 11 دی 1392, 16:33 عصر
ار این کتابخانه استفاده کنید

http://phpexcel.codeplex.com/

سلام
من از این کتابخانه استفاده کردم و مشکلی هم نداره.
یک موضوعی که هست اینه که من در فایل اکسلی که به عنوان template ساخته ام از فونت Bnazanin استفاده کرده ام. وقتی در برنامه به اکسل خروجی می گیرم همه چی مطابق خواسته است الا فونتها که Bnazanin نیستند.

یا تشکر