php如何導出數(shù)據(jù)
php如何導出數(shù)據(jù)
php導出數(shù)據(jù)有兩種方式,一種是通過封裝好的phpexcel導出,一種是通過table導出數(shù)據(jù),指定header就可以導出數(shù)據(jù)。上面是導出到excel中的方法,當然你也可以導出數(shù)據(jù)直接到數(shù)據(jù)庫,或者你也可以到處數(shù)據(jù)到文件中,這個主要看你導出數(shù)據(jù)的格式要求。
看你截圖顯示的是數(shù)組格式,可以通過循環(huán)遍歷然后導入到響應的文件中。
PHP如何將查詢出來的數(shù)據(jù)導出成excel表格(**做一個按鈕)?
講的復雜了??!\\x0d\\x0a你先在一個完整版的PHPExcel之后解壓,在“Examples”目錄下會找到一大堆例子,根據(jù)你的要求這個“01simple-download-xlsx.php”文件就可以了!\\x0d\\x0a注:你先保持“01simple-download-xlsx.php”文件所在的目錄位置不要變,測試好了,再改變名,移到別的地方,地方變了的話,文件里的 “require_once dirname(__FILE__) . \’/../Classes/PHPExcel.php\’;”的所在位置也要變!\\x0d\\x0a我們要改動代碼很少,如下:\\x0d\\x0a// Add some data\\x0d\\x0a$objPHPExcel->setActiveSheetIndex(0)\\x0d\\x0a->setCellValue(\’A1\’, \’Hello\’)\\x0d\\x0a->setCellValue(\’B2\’, \’world!\’)\\x0d\\x0a->setCellValue(\’C1\’, \’Hello\’)\\x0d\\x0a->setCellValue(\’D2\’, \’world!\’);\\x0d\\x0a\\x0d\\x0a// Miscellaneous glyphs, UTF-8\\x0d\\x0a$objPHPExcel->setActiveSheetIndex(0)\\x0d\\x0a->setCellValue(\’A4\’, \’Miscellaneous glyphs\’)\\x0d\\x0a->setCellValue(\’A5\’, \’éàèùaê?????ü???ü?\’);\\x0d\\x0a、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、\\x0d\\x0a直接用的我的替換\\x0d\\x0a$objPHPExcel->setActiveSheetIndex(0)//這個就是現(xiàn)實導出的表**行,有幾列是根據(jù)你的那張表有幾列!\\x0d\\x0a->setCellValue(\’A1\’, \’單號\’)\\x0d\\x0a->setCellValue(\’B1\’, \’標題\’)\\x0d\\x0a->setCellValue(\’C1\’, \’內(nèi)容\’)\\x0d\\x0a->setCellValue(\’D1\’, \’序列\(zhòng)’)\\x0d\\x0a->setCellValue(\’E1\’, \’數(shù)字\’);\\x0d\\x0a//下面實現(xiàn)的就是建立數(shù)據(jù)庫連接,直接到表,你的連接數(shù)據(jù)庫、表、字段應該與我的不一樣,你可以參考\\x0d\\x0a$conn=@mysql_connect(\”localhost\”,\”root\”,\”root\”) or die(\”數(shù)據(jù)庫服務器連接錯誤\”.mysql_error());//連接mysql數(shù)據(jù)庫\\x0d\\x0amysql_select_db(\”temp\”,$conn) or die(\”數(shù)據(jù)庫訪問錯誤\”.mysql_error());//數(shù)據(jù)庫\\x0d\\x0amysql_query(\”set character set gb2312\”);\\x0d\\x0amysql_query(\”set names gb2312\”);\\x0d\\x0a\\x0d\\x0a$sqlgroups=\”select * from test \”;//查詢這一張表的條件\\x0d\\x0a$resultgroups=mysql_query($sqlgroups);\\x0d\\x0a$numrows=mysql_num_rows($resultgroups);\\x0d\\x0aif ($numrows>0)\\x0d\\x0a{\\x0d\\x0a$count=1;\\x0d\\x0awhile($data=mysql_fetch_array($resultgroups))\\x0d\\x0a{\\x0d\\x0a$count+=1;\\x0d\\x0a$l1=\”A\”.\”$count\”;\\x0d\\x0a$l2=\”B\”.\”$count\”;\\x0d\\x0a$l3=\”C\”.\”$count\”;\\x0d\\x0a$l4=\”D\”.\”$count\”;\\x0d\\x0a$l5=\”E\”.\”$count\”;\\x0d\\x0a$objPHPExcel->setActiveSheetIndex(0) \\x0d\\x0a->setCellValue($l1, $data[\’id\’])//這就是你要導出表的字段、與對應的名稱\\x0d\\x0a->setCellValue($l2, $data[\’title\’])\\x0d\\x0a->setCellValue($l3, $data[\’content\’])\\x0d\\x0a->setCellValue($l4, $data[\’sn\’])\\x0d\\x0a->setCellValue($l5, $data[\’num\’]);\\x0d\\x0a}\\x0d\\x0a}
PHP 導出
echo 返回值是void,可以一次輸出多個值,多個值之間用逗號分隔。echo是語言結(jié)構(gòu)(language construct)也就是關(guān)鍵字,而并不是真正的函數(shù),因此不能作為表達式的一部分使用。
使用的時候不用加括號,加上也可以。
只支持基本類型,布爾型除外,echo true的時候顯示1,echo false的時候啥都沒有。echo不可以輸出數(shù)組類型print 返回值是int,只能輸出一個字符串,不支持逗號分隔多個顯示變量的語法。print能輸出數(shù)組類型的數(shù)據(jù),print_r 是函數(shù),不僅可以打印變量的的值,還能顯示變量類型,而且也可以顯示數(shù)組和對象這樣復雜的變量類型。print_r() 將把數(shù)組的指針移到**邊。
使用 reset() 可讓指針回到開始處print_r()可以把字符串和數(shù)字簡單地打印出來,而數(shù)組則以括起來的鍵和值得列表形式顯示,并以Array開頭。如, $a = array(\’name\’ => \’Fred\’, \’age\’ => \’15\’, \’wife\’ => \’Wilma\’);print_r($a);Output: Array{ [name] => Fred [age] => 15 [wife] => Wilma}對象也一樣。如, class P { var $name = \’nat\’; // …}$p = new P;print_r($p);Output: Object{[name] => nat}但print_r()輸出布爾值和NULL的結(jié)果沒有意義,因為都是打印\”\\n\”。
因此用var_dump()函數(shù)更適合調(diào)試。printf()printf()源于C語言中的printf()。該函數(shù)輸出格式化的字符串。
語法: printf(format百科,arg1,arg2,arg++)format 規(guī)定字符串以及如何格式化其中的變量;arg1, arg2, ++ 等參數(shù)將插入到主字符串中的百分號 (%) 符號處。該函數(shù)是逐步執(zhí)行的。在**個 % 符號中,插入 arg1,在第二個 % 符號處,插入 arg2,依此類推。
如果 % 符號多于 arg 參數(shù),則您必須使用占位符。占位符**入 % 符號之后,由數(shù)字和 \”\\$\” 組成。
PHP導出excel 怎么做?
方法一:特點,簡單,省心,<?php header(\”Content-type:application/vnd.ms-excel\”);header(\”Content-Disposition:attachment;filename=test_data.xls\”);$tx=\’表頭\’; echo $tx.\”\\n\\n\”; //輸出內(nèi)容如下: echo \”姓名\”.\”\\t\”; echo \”年齡\”.\”\\t\”; echo \”學歷\”.\”\\t\”; echo \”\\n\”; echo \”張三\”.\”\\t\”; echo \”25\”.\”\\t\”; echo \”本科\”.\”\\t\”; ?>方法二: 引用google code中推薦的小類庫(大體同方法一,比較復雜點)http://code.google.com/p/php-excel/downloads/list方法三: PHPEXCEL 類庫,功能強大,支持win Excel2003 ,Win Excel2007.http://www.codeplex.com/PHPExcel<? //設(shè)置PHPExcel類庫的include path set_include_path(\’.\’. PATH_SEPARATOR . \’D:\\Zeal\\PHP_LIBS\’ . PATH_SEPARATOR . get_include_path()); /** * 以下是使用示例,對于以 //// 開頭的行是不同的可選方式,請根據(jù)實際需要 * 打開對應行的注釋。 * 如果使用 Excel5 ,輸出的內(nèi)容應該是GBK編碼。
*/ require_once \’PHPExcel.php\’; // uncomment ////require_once \’PHPExcel/Writer/Excel5.php\’; // 用于其他低版本xls // or ////require_once \’PHPExcel/Writer/Excel2007.php\’; // 用于 excel-2007 格式 // 創(chuàng)建一個處理對象實例 $objExcel = new PHPExcel(); // 創(chuàng)建文件格式寫入對象實例, uncomment ////$objWriter = new PHPExcel_Writer_Excel5($objExcel); // 用于其他版本格式 // or ////$objWriter = new PHPExcel_Writer_Excel2007($objExcel); // 用于 2007 格式 //$objWriter->setOffice2003Compatibility(true); //************************************* //設(shè)置文檔基本屬性 $objProps = $objExcel->getProperties(); $objProps->setCreator(\”Zeal Li\”); $objProps->setLastModifiedBy(\”Zeal Li\”); $objProps->setTitle(\”O(jiān)ffice XLS Test Document\”); $objProps->setSubject(\”O(jiān)ffice XLS Test Document, Demo\”); $objProps->setDescription(\”Test document, generated by PHPExcel.\”); $objProps->setKeywords(\”office excel PHPExcel\”); $objProps->setCategory(\”Test\”); //************************************* //設(shè)置當前的sheet索引,用于后續(xù)的內(nèi)容操作。
//一般只有在使用多個sheet的時候才需要顯示調(diào)用。 //缺省情況下,PHPExcel會自動創(chuàng)建**個sheet被設(shè)置SheetIndex=0 $objExcel->setActiveSheetIndex(0); $objActSheet = $objExcel->getActiveSheet(); //設(shè)置當前活動sheet的名稱 $objActSheet->setTitle(\’測試Sheet\’); //************************************* //設(shè)置單元格內(nèi)容 // //由PHPExcel根據(jù)傳入內(nèi)容自動判斷單元格內(nèi)容類型 $objActSheet->setCellValue(\’A1\’, \’字符串內(nèi)容\’); // 字符串內(nèi)容 $objActSheet->setCellValue(\’A2\’, 26); // 數(shù)值 $objActSheet->setCellValue(\’A3\’, true); // 布爾值 $objActSheet->setCellValue(\’A4\’, \’=SUM(A2:A2)\’); // 公式 //顯式指定內(nèi)容類型 $objActSheet->setCellValueExplicit(\’A5\’, \’847475847857487584\’, PHPExcel_Cell_DataType::TYPE_STRING); //合并單元格 $objActSheet->mergeCells(\’B1:C22\’); //分離單元格 $objActSheet->unmergeCells(\’B1:C22\’); //************************************* //設(shè)置單元格樣式 // //設(shè)置寬度 $objActSheet->getColumnDimension(\’B\’)->setAutoSize(true); $objActSheet->getColumnDimension(\’A\’)->setWidth(30); $objStyleA5 = $objActSheet->getStyle(\’A5\’); //設(shè)置單元格內(nèi)容的數(shù)字格式。 // //如果使用了 PHPExcel_Writer_Excel5 來生成內(nèi)容的話, //這里需要注意,在 PHPExcel_Style_NumberFormat 類的 const 變量定義的 //各種自定義格式化方式中,其它類型都可以正常使用,但當setFormatCode //為 FORMAT_NUMBER 的時候,實際出來的效果被沒有把格式設(shè)置為\”0\”。需要 //修改 PHPExcel_Writer_Excel5_Format 類源代碼中的 getXf($style) 方法, //在 if ($this->_BIFF_version == 0x0500) { (第363行附近)前面增加一 //行代碼: //if($ifmt === \’0\’) $ifmt = 1; // //設(shè)置格式為PHPExcel_Style_NumberFormat::FORMAT_NUMBER,避免某些大數(shù)字 //被使用科學記數(shù)方式顯示,配合下面的 setAutoSize 方法可以讓每一行的內(nèi)容 //都按原始內(nèi)容全部顯示出來。