當前位置:首頁 » 編程語言 » php生成csv

php生成csv

發布時間: 2023-01-16 14:57:08

php 生成csv文件並提示保存

<?php
//文件名
$filename="test.csv";

//數據(具體的根據需要做處理,如果是從資料庫查詢,原理與此類似,只需設置好寫入格式和數據即可。
$data="測試csv";

//設置header
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文件

$filename="export_".date('Ymd').".csv";
header('Content-Type:application/vnd.ms-excel');
header('Content-Disposition:attachment;filename="'.$filename.'"');
header('Cache-Control:max-age=0');

//寫入你的查詢代碼

$fp=fopen('php://output','a');
$print_hea=array("姓名","年齡","性別");
fputcsv($fp,$print_hea);

//下面是你的查詢結果代碼,把結果循環在數組中後使用
fputcsv($fp,$print_hea_new);

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

  1. 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++) {
    $zian = $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,內容,時間 ");
$file_str="";
$mysqli= new mysqli('localhost','root','','test');
if (mysqli_connect_errno()) {
printf("Connect failed: %s ", 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']." ";
}
}else{
echo "nonono!!!";
}
$file_str= iconv("utf-8",'gbk',$file_str);
ob_end_clean();
echo $header_str;
echo $file_str;
?>

Ⅳ php怎麼樣把xls轉換成csv

PHPExcel完全可以滿足你的要求,給個簡單處理例子,具體的你還是看看PHPExcel的文檔:

$filename = "myexcel.xlsx";
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objReader->load($filename);
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'CSV');
$objWriter->save(str_replace('.xlsx', '.csv',$filename));

Ⅳ 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文件自動保存在指定的路徑(不提示保存,自動)

命令行模式下,或者web模式下保存的路徑在伺服器中,可以達到你的要求(有該路徑的許可權即可)

如果是在web模式下,不提示直接保存到訪客的電腦中的某個位置,是不可以的。

web模式保存到客戶端,只能通過下載,由用戶指定,或保存到默認的下載目錄。

以下是代碼示例:

$dsn='mysql:dbname=testdb;host=127.0.0.1';
$user='dbuser';
$password='dbpass';

//連接資料庫pdo
try{
$dbh=newPDO($dsn,$user,$password,array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SETNAMES'UTF8'"));
}catch(PDOException$e){
echo'Connectionfailed:'.$e->getMessage();exit;
}

//讀取數據,具體sql你根據情況修改
$stat=$dbh->prepare('SELECT*FROM`table`WHERE`id`>0LIMIT100;');
$stat->execute();
$result=$stat->fetchAll(PDO::FETCH_ASSOC);

//創建csv文件並打開文件指針
$filepath='file.csv';
$fp=fopen($filepath,'w');

//寫入數據
foreach($resultas$i=>$row){
//寫入標題行
if($i==0){
fputcsv($fp,array_keys($row));
}
fputcsv($fp,$row);
}

//關閉文件指針
fclose($fp);

//把文件輸出到下載
$file=fopen($filepath,"r");//打開文件
$size=filesize($filepath);
Header("Content-type:application/octet-stream");
Header("Accept-Ranges:bytes");
Header("Accept-Length:".$size);
Header("Content-Disposition:attachment;filename=download.csv");
echofread($file,$size);
fclose($file);

相關知識點:

PHP: fputcsv

PHP:PDO

資料庫查詢的時候只返回列名,防止列出現重復,csv里會有重復的數據

Ⅶ 如何使用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格式的文件

其實你可以用
phpmyadmin
實現導入導出,不過導入的時候欄位要和數據表的欄位一一對應,參考資料裡面的直接用PHP讀取excel的,可能也會對你有幫助!

Ⅸ PHP生成CSV文件問題 麻煩各位高手幫忙看看

csv很簡單
數據以,分開
行用\n
存為.csv就行了
生成xls的話稍微復雜一點兒,下面是一個生成xls的類,你可以按照你的需要修改調用一下。
======================================
用PHP生成xls,csv格式文件的類
2008年09月23日 星期二 上午 09:56

fileOperation.php
****************************************************
class fileOperation {//基類
var $fileName='test';
var $extendName='csv';
var $mPath='./report/';
var $mFp;
function fileOperation() {

}
function openFile($mode='w'){
if(empty($this->fileName)){
$this->setTimeFileName();
}
if (empty($this->extendName)){
$this->setExtendName();
}

$fp=fopen($this->mPath.'/'.$this->fileName.'.'.$this->extendName,$mode);
if($fp){
$this->mFp=$fp;
}else{
return 0;
}
}
function closeFile(){
return fclose($this->mFp);
}
function setTimeFileName($type='Ymd'){
if(!empty($type)){
$this->fileName=$type;
}else{
$this->fileName=time();
}
}
function setExtendName($extend='txt'){
if(!empty($extend)){
$this->extendName=$extend;
}else{
$this->extendName='.csv';
}
}
function setPath($path='./'){
$this->mPath=$path;
}
}

xlsHelper.php
****************************************************
require_once 'fileOperation.php';
class xlsHelper extends fileOperation{//具體實現子類
var $mSpace = '';
var $mHead;
var $mBody='';

function addHeader($head=array()){
$this->mHead='<table width="500" border="1" align="center" cellpadding="5"><tr>';
if (is_array($head)){
foreach($head as $hd){
$this->mHead.='<th bgcolor="#A5A0DE">'.$hd.'</th>';
}
}
$this->mHead.='</tr>';
}
function addBodyData($body=array()){
if(is_array($body)){

for($i=0;$i<count($body);$i++){
$childBody=$body[$i];
$this->mBody.='<tr>';
$this->mSpace = '<td align="center">';
for($j=0;$j<count($childBody);$j++){
$this->mBody.=$this->mSpace.$childBody[$j].'</td>';
}
$this->mBody.="</tr>";
}

}
$this->mBody.='</table>';
}
function _construct(){

}
function writeCSVDate(){
return fwrite($this->mFp,$this->mHead.mb_convert_encoding($this->mBody,'sjis','sjis'));
}
function setSpace($type=','){
$this->mSpace=$type;
}
}

test.php
****************************************************
$xls=new xlsHelper();
$xls->fileName='xxx';//設置生成文件的文件名
$xls->extendName='xls';//文件擴展名
$xls->mPath='./';//文件保存路徑

$headerarr=array('姓名','年齡','郵箱');//頭部欄位名
$xls->addHeader($headerarr);

$datasarr=array(//注意:此處的二維數組一定要是數字索引
array('yht',20,'[email protected]'),
array('ktv009',23,'[email protected]'),
);
$xls->addBodyData($datasarr);

$xls->openFile('w');
if($xls->writeCSVDate()) echo "<script language='javascript'>生成文件成功</script>";
else echo ""<script language='javascript'>無法生成文件</script>";

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

把Excel文件導入mysql:
打開excel文件,可用phpExcel開源的類
或者:
先把excel文件另存為csv格式,最好是utf8編碼。
fgetcsv() — 從文件指針中讀入一行並解析 CSV 欄位,返回數組

熱點內容
linux64位內存 發布:2025-07-16 01:02:36 瀏覽:959
壓縮衣尺碼表 發布:2025-07-16 00:47:33 瀏覽:639
安卓恢復了出廠怎麼找回照片 發布:2025-07-16 00:43:56 瀏覽:932
為什麼說伺服器已停止響應 發布:2025-07-16 00:29:36 瀏覽:391
python判斷字元串是否為空 發布:2025-07-16 00:21:47 瀏覽:210
安卓轉蘋果用什麼軟體 發布:2025-07-16 00:21:45 瀏覽:628
安卓官服如何登ios 發布:2025-07-16 00:21:32 瀏覽:624
天龍搶店腳本 發布:2025-07-16 00:14:47 瀏覽:958
華為榮耀存儲卡 發布:2025-07-16 00:10:40 瀏覽:659
mysql創建utf8資料庫 發布:2025-07-16 00:04:08 瀏覽:105