真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

php導(dǎo)出百萬條數(shù)據(jù)表格,php導(dǎo)出百萬條數(shù)據(jù)到Excel

php 怎么把數(shù)據(jù)導(dǎo)出到excel表格

php 把數(shù)據(jù)導(dǎo)出到excel表格有多種方法,比如使用 phpExcel 等,以下代碼是直接通過 header 生成 excel 文件的代碼示例:

創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)網(wǎng)站建設(shè)與網(wǎng)站營銷,提供成都網(wǎng)站設(shè)計、成都做網(wǎng)站、網(wǎng)站開發(fā)、seo優(yōu)化、網(wǎng)站排名、互聯(lián)網(wǎng)營銷、微信小程序開發(fā)、公眾號商城、等建站開發(fā),創(chuàng)新互聯(lián)網(wǎng)站建設(shè)策劃專家,為不同類型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制解決方案,幫助客戶在新的全球化互聯(lián)網(wǎng)環(huán)境中保持優(yōu)勢。

?php

header("Content-type:application/vnd.ms-excel");

header("Content-Disposition:filename=xls_region.xls");

$cfg_dbhost?=?'localhost';

$cfg_dbname?=?'testdb';

$cfg_dbuser?=?'root';

$cfg_dbpwd?=?'root';

$cfg_db_language?=?'utf8';

//?END?配置

//鏈接數(shù)據(jù)庫

$link?=?mysql_connect($cfg_dbhost,$cfg_dbuser,$cfg_dbpwd);

mysql_select_db($cfg_dbname);

//選擇編碼

mysql_query("set?names?".$cfg_db_language);

//users表

$sql?=?"desc?users";

$res?=?mysql_query($sql);

echo?"tabletr";

//導(dǎo)出表頭(也就是表中擁有的字段)

while($row?=?mysql_fetch_array($res)){

$t_field[]?=?$row['Field'];?//Field中的F要大寫,否則沒有結(jié)果

echo?"th".$row['Field']."/th";

}

echo?"/tr";

//導(dǎo)出100條數(shù)據(jù)

$sql?=?"select?*?from?users?limit?100";

$res?=?mysql_query($sql);

while($row?=?mysql_fetch_array($res)){

echo?"tr";

foreach($t_field?as?$f_key){

echo?"td".$row[$f_key]."/td";

}

echo?"/tr";

}

echo?"/table";

?

PHP導(dǎo)出100萬數(shù)據(jù)到excel

php導(dǎo)出數(shù)據(jù)excel有專門的庫,當(dāng)導(dǎo)出少量數(shù)據(jù)的時候速度很快,但是當(dāng)數(shù)據(jù)量大的時候就會存在服務(wù)器內(nèi)存不夠之類的。

所以在導(dǎo)出大量數(shù)據(jù)的時候就應(yīng)該分頁查詢數(shù)據(jù),避免服務(wù)器宕機(jī)。正好PHP提供了fputcsv函數(shù)可以將數(shù)據(jù)寫入到csv文件中。

這樣我們就可以使用PHP對數(shù)據(jù)進(jìn)行分頁查詢,再寫入到csv文件中。

php怎么導(dǎo)出大量數(shù)據(jù)的Excel,phpexcel

1 $fp = fopen('php://output', 'a');

2

3 // 輸出Excel列名信息

4 $head = array("郵件");

5 foreach ($head as $i = $v) {

6 // CSV的Excel支持GBK編碼,一定要轉(zhuǎn)換,否則亂碼

7 $head[$i] = iconv('utf-8', 'gbk', $v);

8 }

9

10 // 將數(shù)據(jù)通過fputcsv寫到文件句柄

11 fputcsv($fp, $head);

12

13 // 計數(shù)器

14 $cnt = 0;

15 // 每隔$limit行,刷新一下輸出buffer,不要太大,也不要太小

16 $limit = 100000;

17

18 // 逐行取出數(shù)據(jù),不浪費內(nèi)存

19 $count = count($email);

20

21 for($t=0;$t$count;$t++) {

22

23 $cnt ++;

24 if ($limit == $cnt) { //刷新一下輸出buffer,防止由于數(shù)據(jù)過多造成問題

25 ob_flush();

26 flush();

27 $cnt = 0;

28 }

29 $row[] = $email[$t];

30 foreach ($row as $i = $v) {

31 $row[$i] = iconv('utf-8', 'gbk', $v);

32 }

33 fputcsv($fp, $row);

34 unset($row);

35 }

php怎么導(dǎo)出大量數(shù)據(jù)的Excel

微軟的Excel設(shè)置單元格行數(shù)默認(rèn)是6萬行rows,相對的講其實當(dāng)我們超過1萬行的時候已經(jīng)是大數(shù)據(jù)的導(dǎo)出。

好比:有客戶10000人,平均每人每天產(chǎn)生10條活動記錄,要導(dǎo)出上周所有的客戶活動記錄: 10000*10*7=700000

估計看70萬行的Excel這個人會瘋掉的,我們的建議是分批次導(dǎo)出,按時間導(dǎo)出到不同的excel

下面是一個PHPExcel官方的Demo(已修改過)

復(fù)制代碼

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'), " 當(dāng)前使用的緩存方法是: ", $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")

具體的還有很多寫不下,我是在后盾人看的教學(xué)視頻無意中學(xué)到的,正好解答給你希望能幫到你


網(wǎng)頁題目:php導(dǎo)出百萬條數(shù)據(jù)表格,php導(dǎo)出百萬條數(shù)據(jù)到Excel
文章位置:http://weahome.cn/article/phicoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部