php導出數(shù)據(jù)excel有專門的庫,當導出少量數(shù)據(jù)的時候速度很快,但是當數(shù)據(jù)量大的時候就會存在服務(wù)器內(nèi)存不夠之類的。
10年積累的成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先做網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有晉江免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
所以在導出大量數(shù)據(jù)的時候就應(yīng)該分頁查詢數(shù)據(jù),避免服務(wù)器宕機。正好PHP提供了fputcsv函數(shù)可以將數(shù)據(jù)寫入到csv文件中。
這樣我們就可以使用PHP對數(shù)據(jù)進行分頁查詢,再寫入到csv文件中。
在使用PhpMyAdmin的時候經(jīng)常用到數(shù)據(jù)的導入和導出(Export/Import),但是在導入大數(shù)據(jù)的時候由于php上傳文件的限制和腳本響應(yīng)時間的限制,導致phpMyAdmin無法導入大數(shù)據(jù)。很多時候都是由于文件過大,從本地瀏覽上傳導入,容易中斷失敗,有沒有更好的方法呢?
方法:
在phpMyAdmin的目錄下,找到根目錄的config.inc.php文件,
打開config.inc.php文件,查找$cfg['UploadDir'],這個參數(shù)就是設(shè)定導入文件存放的目錄,這里把值設(shè)定為:ImportSQLFile。
在phpMyAdmin目錄下,建立以ImportSQLFile命名的文件夾,
把我們需要導入的數(shù)據(jù)文件,放到ImportSQLFile文件夾下面,非常簡單,
登入phpMyAdmin,選擇需要導入的數(shù)據(jù),點擊導航條上面的“導入”按鈕,
選中“從網(wǎng)站服務(wù)器上傳文件夾ImportSQLFile/中選擇:”選項,并需要導入的數(shù)據(jù)文件,
最后點擊“執(zhí)行”,即可導入成功。
注意事項
如果在config.inc.php文件,沒有找到$cfg['UploadDir'],可以自己在文件中添加上去即可。
$name = iconv("utf-8","gbk",'二級學院列表');;
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$name.xls");
//第三行的 name.xls這個xls可以自己改,不過大數(shù)據(jù)的導出建議使用專業(yè)的類,如phpexcel.
微軟的Excel設(shè)置單元格行數(shù)默認是6萬行rows,相對的講其實當我們超過1萬行的時候已經(jīng)是大數(shù)據(jù)的導出。
好比:有客戶10000人,平均每人每天產(chǎn)生10條活動記錄,要導出上周所有的客戶活動記錄: 10000*10*7=700000
估計看70萬行的Excel這個人會瘋掉的,我們的建議是分批次導出,按時間導出到不同的excel
下面是一個PHPExcel官方的Demo(已修改過)
復制代碼
define('EOL', 'br /');
$objPHPExcel = new \app\extensions\PHPExcel\PHPExcel();
ini_set("memory_limit", "1024M"); // 設(shè)置php可使用內(nèi)存
$cacheMethod = \PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
if (!\PHPExcel_Settings::setCacheStorageMethod($cacheMethod)) {
die($cacheMethod . " 緩存方法不可用" . EOL);
}
echo date('H:i:s'), " 當前使用的緩存方法是: ", $cacheMethod, " 方式", EOL;
echo date('H:i:s'), " 開始設(shè)置文檔屬性", EOL;
$objPHPExcel-getProperties()-setCreator("Maarten Balliauw")
-setLastModifiedBy("Maarten Balliauw")
-setTitle("Office 2007 XLSX Test Document")
-setSubject("Office 2007 XLSX Test Document")
具體的還有很多寫不下,我是在后盾人看的教學視頻無意中學到的,正好解答給你希望能幫到你
php導出數(shù)據(jù)有兩種方式,一種是通過封裝好的phpexcel導出,一種是通過table導出數(shù)據(jù),指定header就可以導出數(shù)據(jù)。
上面是導出到excel中的方法,當然你也可以導出數(shù)據(jù)直接到數(shù)據(jù)庫,或者你也可以到處數(shù)據(jù)到文件中,這個主要看你導出數(shù)據(jù)的格式要求。
看你截圖顯示的是數(shù)組格式,可以通過循環(huán)遍歷然后導入到響應(yīng)的文件中。