php導出csv封裝,php生成csv文件

本文目錄一覽:

php中如何導入導出CSV格式的文件

php導入CSV文件:

$line_number = 0;

$handle = fopen(“1.xls”,”r”);

while ($data = fgetcsv ($handle, 100000, “,”)) {

if($line_number == 0){

$line_number++;

continue;

}

//z這樣就可以去掉表頭的那一行

for ($i = 0; $i count($data); $i++) {

$ziduan = $data[$i];

}

}

2.php導出CSV文件

header( “Cache-Control: public” );

    header( “Pragma: public” );

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

    header(“Content-Disposition:attachment;filename=txxx.csv”);

    header(‘Content-Type:APPLICATION/OCTET-STREAM’);

ob_start();

$header_str =  iconv(“utf-8″,’gbk’,”信息id,標題,名稱,電話,QQ,Email,內容,時間\n”);

$file_str=””;

$mysqli= new mysqli(‘localhost’,’root’,”,’test’);

if (mysqli_connect_errno()) {

    printf(“Connect failed: %s\n”, mysqli_connect_error());

    exit();

}

$sql=’select *  from messages’;

$mysqli-query(“set names utf8 ;”);

$result=$mysqli-query($sql);

if($result){

while ($row = mysqli_fetch_assoc($result)){

$file_str.= $row[‘id’].’,’.$row[‘title’].’,’.$row[‘name’].’,’.”‘{$row[‘telephone’]}'”.’,’.$row[‘qq’].’,’.$row[’email’].’,’.str_ireplace(‘,’,’,’,$row[‘content’]).’,’.$row[‘retime’].”\n”;

}

}else{

echo “nonono!!!”;

}

$file_str=  iconv(“utf-8”,’gbk’,$file_str);

ob_end_clean();

echo $header_str;

echo $file_str;

?

php導出excel或csv

?php

ob_start();

header(“meta http-equiv=\”content-type\” content=\”text/html;charset=uft-8\””);

header(“Content-Type: application/vnd.ms-excel”);

header(“Expires:0”);

header(“Cache-Control: must-revalidate, post-check=0, pre-check=0”);

header(“content-disposition: attachment;filename=文件名稱”);

$row = $db – … … # 這裡可以進行資料庫的操作,記住:ob_start();前不要有輸出

?

如何使用PHP導出csv和excel文件

(一)phpexcel文件導出:

步驟1,引入文件require APPPATH.’/libraries/PHPExcel.PHP’;

步驟2, 實例化PHPEXCEL對象 $objPHPExcel=new PHPExcel();

步驟3, 設置表頭 $column = array(‘A’,’B’,’C’); $line = array(‘詞語’,’頻次’,’詞性’);

//填充表頭信息

for($i = 0;$i count($tableheader_all);$i++) {

$objPHPExcel-getActiveSheet()-setCellValue(“$letter[$i]1″,”$tableheader[$i]”);

//上一行中”$letter[$i]1″表示第「1」行第「$i」列

}

步驟4, 填充數據

for ($i = 2;$i = count($data) + 1;$i++) {//因為內容是從第二行開始的,所以i=2表示從第二行開始填充數據

$j = 0;

foreach ($tmp as $key=$val ){

$objPHPExcel-getActiveSheet()-setCellValue(“$letter[$j]$i”,$data[$i-2][$val]); //數據是從第一條開始但是i的初值是2所以想從第一條開始應該是$data[$i-2]開始

$j++;

}

}

步驟5,寫進excel中並輸出

$write = new PHPExcel_Writer_Excel5($objPHPExcel);

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/vnd.ms-execl”);

header(“Content-Type:application/octet-stream”);

header(“Content-Type:application/download”);;

header(‘Content-Disposition:attachment;filename=”數據導出_詞雲圖.xls”‘);

header(“Content-Transfer-Encoding:binary”);

$write-save(‘php://output’);

(一)CSV文件導出:

csv文件導出最令人頭疼的問題就是編碼問題,現在分享一下我的經驗

首先看伺服器是Linux的還是windows的 如果是windows的伺服器那麼編碼問題只能藉助於mb_convert_encoding()或者是iconv兩個函數相互轉換中文編碼

如果伺服器是linux的 那麼很簡單 utf-8: setlocale(LC_ALL, 『en_US.UTF-8′); 簡體中文:setlocale(LC_ALL, 『zh_CN’);

下面來說csv導出步驟:

$result = mysql_query(“select * from student order by id asc”);

$str = “姓名,性別,年齡\n”;

$str = iconv(‘utf-8′,’gb2312’,$str);

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

$name = iconv(‘utf-8′,’gb2312’,$row[‘name’]); //中文轉碼

$sex = iconv(‘utf-8′,’gb2312’,$row[‘sex’]);

$str .= $name.”,”.$sex.”,”.$row[‘age’].”\n”; //用引文逗號分開

}

$filename = date(‘Ymd’).’.csv’; //設置文件名

export_csv($filename,$str); //導出

要將數據導出到本地即下載,需要修改header信息,代碼如下:

function export_csv($filename,$data) {

header(“Content-type:text/csv”);

header(“Content-Disposition:attachment;filename=”.$filename);

header(‘Cache-Control:must-revalidate,post-check=0,pre-check=0’);

header(‘Expires:0’);

header(‘Pragma:public’);

echo $data;

}

php 生成 csv文件

?php

/**

 * Created by PhpStorm.

 * User: chenyanphp@qq.com

 * Date: 2016/12/21 0021

 * Time: 下午 12:08

 */

// 頭部標題

$csv_header = [‘名稱’,’性別’,’年齡’];

// 內容

$csv_body = [

 [‘張三’,’男’,’13’],

 [‘李四’,’女’,’13’],

 [‘王五’,’男’,’13’],

 [‘趙六’,’未知’,’13’]

];

/**

 * 開始生成

 * 1. 首先將數組拆分成以逗號(注意需要英文)分割的字元串

 * 2. 然後加上每行的換行符號,這裡建議直接使用PHP的預定義

 * 常量PHP_EOL

 * 3. 最後寫入文件

 */

// 打開文件資源,不存在則創建

$fp = fopen(‘test.csv’,’a’);

// 處理頭部標題

$header = implode(‘,’, $csv_header) . PHP_EOL;

// 處理內容

$content = ”;

foreach ($csv_body as $k = $v) {

 $content .= implode(‘,’, $v) . PHP_EOL;

}

// 拼接

$csv = $header.$content;

// 寫入並關閉資源

fwrite($fp, $csv);

fclose($fp);

原創文章,作者:IA9MI,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/128057.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
IA9MI的頭像IA9MI
上一篇 2024-10-03 23:24
下一篇 2024-10-03 23:24

相關推薦

發表回復

登錄後才能評論