1. php導出數據到excel 格式設置
$name = iconv("utf-8","gbk",'二級學院列表');;
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$name.xls");
//第三行的 name.xls這個xls可以自己改,不過大數據的導出建議使用專業的類,如phpexcel.
2. php怎麼導入大量數據的excel
php導出大量數據的Excel:
PHP從資料庫分多次讀取100萬行記錄,和分多次將100萬行寫入文本文件都沒問題
Excel可以支持100萬行記錄,Excel 2003最大支持65536行,從2007版開始支持104萬行了,目前2007的盜版應該比較普及了-_-! 問清楚客戶是什麼版本。
要導出excel的理由是非常充分和正確的,應該繼續堅持。業務人員最熟悉的就是Excel,實在不熟悉現學現用也比別的快。只是要注意,當數據量達到10萬行這個級別時,Excel的公式填充將會非常非常慢,如果再有LOOKUP()公式,基本上十分鍾內處理CPU滿載進程管理器殺不掉的狀態,這時候其實xampp + phpmyadmin是一個易用性和性能都最平衡的選擇
PHPExcel輸出的是Excel XML格式,有個XML頭和尾,中間是數據Body,需要將100萬行都賦值給一個數組才可以調用PHPExcel->write(),這容易導致PHP執行超時或者內存超限,不妨調整一下php.ini配置,把超時時間和內存限制都改到很大
如果是輸出csv格式,那就太簡單了,你的問題可能是沒給欄位內容加引號,加上引號再調用fputcsv試試?其實fputcsv做的事情特別簡單,你甚至可以不管它,自己把CSV文件的每一行拼接好了之後用file_put_contents寫入
3. php怎麼導出大量數據的Excel
微軟的Excel設置單元格行數默認是6萬行rows,相對的講其實當我們超過1萬行的時候已經是大數據的導出。
好比:有客戶10000人,平均每人每天產生10條活動記錄,要導出上周所有的客戶活動記錄: 10000*10*7=700000
估計看70萬行的Excel這個人會瘋掉的,我們的建議是分批次導出,按時間導出到不同的excel
下面是一個PHPExcel官方的Demo(已修改過)
復制代碼
define('EOL', '<br />');
$objPHPExcel = new \app\extensions\PHPExcel\PHPExcel();
ini_set("memory_limit", "1024M"); // 設置php可使用內存
$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'), " 開始設置文檔屬性", EOL;
$objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
->setLastModifiedBy("Maarten Balliauw")
->setTitle("Office 2007 XLSX Test Document")
->setSubject("Office 2007 XLSX Test Document")
具體的還有很多寫不下,我是在後盾人看的教學視頻無意中學到的,正好解答給你希望能幫到你
4. php怎麼導出大量數據的Excel
簡介來:可以利用工具軟體導出自成Excel文件
工具原料:Apache+php+mysql網站運行環境,phpMyAdmin v4.6.2
下載phpMyAdmin v4.6.2軟體後解壓放在網站根目錄
用root用戶和密碼登入phpMyAdmin,在左邊欄點擊要導出的資料庫,然後點擊要導出的數據表,最後點擊導出如圖所示。
最後點擊執行按鈕,OK.
5. php怎麼把資料庫里的數據插入到excel
建議你先生成csv文件格式,然後手動轉換成excel文件.
php倒是有擴展支持生成excel,例如PHPExcel.不過都相對麻煩.
6. php怎麼導出大量數據的Excel
php導出大量數據到Excel,可以通過生成多個Excel文件,然後壓縮成壓縮包解決。
方案是:假如我們資料庫有10w條數據,每2000條數據生成一個Excel文件,這樣每次只要從資料庫里查詢出2000條數據即可,一定要分頁去查詢。
原因:主要是資料庫性能和寫文件性能。分頁查詢可以解決資料庫壓力的問題, 生成多個文件可以解決單個文件太大,後期維護Excel文件的問題。
要注意的:
1. 在導出邏輯文件開頭,一定要聲明 set_time_limit(0) ,防止腳本超時;
2. 每個文件生成後,適當的sleep一下,讓程序休息一下下;
3. 因為一次導出最後要將生成的多個Excel文件打包成一個壓縮包,所以要刪除掉生成的Excel文件,節省伺服器存儲空間;
下面是我實際工作中,寫的一個php導出大量數據到Excel的代碼,你可以參考一下:
7. PHP導出100萬數據到excel
php導出數據excel有專門的庫,當導出少量數據的時候速度很快,但是當數據量大的時候就會存在伺服器內存不夠之類的。
所以在導出大量數據的時候就應該分頁查詢數據,避免伺服器宕機。正好PHP提供了fputcsv函數可以將數據寫入到csv文件中。
這樣我們就可以使用PHP對數據進行分頁查詢,再寫入到csv文件中。
8. php怎麼導出大量數據的Excel
數據量很大時(5萬條以上),用 PHPExcel 導出 xls 將十分緩慢且佔用很大內存,最終造成運行超時或內存不足。
可以通過設置 PHP 的運行時間和內存限制來阻止錯誤發生,但仍然不能確保導出完成。
[php] view plain
set_time_limit(0);
ini_set("memory_limit","512M");
要徹底解決這個問題可以將數據分批導出成 CSV 格式的文件,這種格式簡單導出快,並且也能用到 Excel 中。
[php] view plain
<?php
// 不限制腳本執行時間以確保導出完成
set_time_limit(0);
// 輸出Excel文件頭,可把user.csv換成你要的文件名
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="amazon_proct_quantity.csv"');
header('Cache-Control: max-age=0');
// 從資料庫中獲取數據,為了節省內存,不要把數據一次性讀到內存,從句柄中一行一行讀即可
$sql = 'select * from amazon_proct_quantity';
$stmt = mysql_query($sql);
// 打開PHP文件句柄,php://output 表示直接輸出到瀏覽器
$fp = fopen('php://output', 'a');
// 輸出Excel列名信息
$head = array('code', 'sub_code', 'sp_code', 'quantity');
foreach ($head as $i => $v) {
// CSV的Excel支持GBK編碼,一定要轉換,否則亂碼
$head[$i] = iconv('utf-8', 'gb2312', $v);
}
// 將數據通過fputcsv寫到文件句柄
fputcsv($fp, $head);
// 計數器
$cnt = 0;
// 每隔$limit行,刷新一下輸出buffer,不要太大,也不要太小
$limit = 100000;
// 逐行取出數據,不浪費內存
while ($row = mysql_fetch_array($stmt,MYSQL_ASSOC)) {
$cnt ++;
if ($limit == $cnt) { //刷新一下輸出buffer,防止由於數據過多造成問題
ob_flush();
flush();
$cnt = 0;
}
foreach ($row as $i => $v) {
$row[$i] = iconv('utf-8', 'gb2312', $v);
}
fputcsv($fp, $row);
}
?>