Ⅰ php中如何導入導出CSV格式的文件
其實你可以用
phpmyadmin
實現導入導出,不過導入的時候欄位要和數據表的欄位一一對應,參考資料裡面的直接用PHP讀取excel的,可能也會對你有幫助!
Ⅱ 求源碼!PHP導出數據到csv文件
<?php
$DB_Server = "localhost";
$DB_Username = "root";
$DB_Password = "";
$DB_DBName = "DBName";
$DB_TBLName = "DB_TBLName";
$savename = date("YmjHis");
$Connect = @mysql_connect($DB_Server, $DB_Username, $DB_Password) or die("Couldn't connect.");
mysql_query("Set Names 'gbk'");
$file_type = "vnd.ms-excel";
$file_ending = "xls";
header("Content-Type: application/$file_type;charset=gbk");
header("Content-Disposition: attachment; filename=".$savename.".$file_ending");
//header("Pragma: no-cache");
$now_date = date("Y-m-j H:i:s");
//$title = "資料庫名:$DB_DBName,數據表:$DB_TBLName,備份日期:$now_date";
$sql = "Select * from $DB_TBLName";
$ALT_Db = @mysql_select_db($DB_DBName, $Connect) or die("Couldn't select database");
$result = @mysql_query($sql,$Connect) or die(mysql_error());
//echo("$title\n");
$sep = "\t";
for ($i = 0; $i < mysql_num_fields($result); $i++) {
echo mysql_field_name($result,$i) . "\t";
}
print("\n");
$i = 0;
while($row = mysql_fetch_row($result)) {
$schema_insert = "";
for($j=0; $j<mysql_num_fields($result);$j++) {
if(!isset($row[$j]))
$schema_insert .= "NULL".$sep;
elseif ($row[$j] != "")
$schema_insert .= "$row[$j]".$sep;
else
$schema_insert .= "".$sep;
}
$schema_insert = str_replace($sep."$", "", $schema_insert);
$schema_insert .= "\t";
print(trim($schema_insert));
print "\n";
$i++;
}
return (true);
?>
Ⅲ php導出csv文件時,只能在瀏覽器上顯示文件內容,沒有下載提示,更沒有下載的csv文件,幫忙指點啊!
據我的理解,export_csv這個函數的功能就是顯示csv內容。
按照你的說明猜測,你應該是先將資料庫的內容輸出到csv文件里,然後再給出一個指向該文件的下載鏈接就可以了。
export_csv這個函數可以設計成直接用 file 操作函數寫入內容就可以了,因為csv本身是純文本文件,沒有什麼特殊的文件格式。
Ⅳ 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時如何設置屬性,合並單元格之類的。。
CSV文件本身就是不帶格式符號的純文字,無法直接在PHP中控制單元格合並這樣的事情,我覺得你可以用html代碼生成execl能直接讀的文檔比較好
$result=mysql_query("select*fromstudentorderbyidasc");
$str="<tr><td>姓名</td><td>性別</td><td>年齡</td></tr> ";
$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.="<tr><td>".$name."</td><td>".$sex."</td><td>".$row['age']."</td></tr>";
}
$filename=date('Ymd').'.xls';
export_xls($filename,$str);
functionexport_xls($filename,$string){
//可以修改樣式,控制字型大小、字體、表格線、對齊方式、表格寬度、單元格padding等,在下邊的<style></style>
$header="<htmlxmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"> <!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <metahttp-equiv="Content-type"content="text/html;charset=GBK"/> <style> td{padding:4px;mso-ignore:padding;color:windowtext;font-size:10.0pt;font-weight:400;font-style:normal;text-decoration:none;font-family:Arial;mso-generic-font-family:auto;mso-font-charset:134;mso-number-format:General;text-align:general;vertical-align:middle;border:.5ptsolidwindowtext;mso-background-source:auto;mso-pattern:auto;mso-protection:lockedvisible;white-space:nowrap;mso-rotate:0;} </style> </head><body> <tablex:strborder=0cellpadding=0cellspacing=0width=100%style="border-collapse:collapse">";
$footer="</table> </body></html>";
$exportString=$header.$string.$footer;
header("Cache-Control:public");
header("Pragma:public");
header("Content-type:Content-type:application/vnd.ms-excel");
header("Accept-Ranges:bytes");
header("Content-Disposition:attachment;filename=".$filename);
header("Content-length:".strlen($exportString));
echo$exportString;
exit;
}
Ⅵ 如何用PHP實現資料庫導出到txt文件或csv文件
while($r=mysql_fetch_assoc($rs)){
file_put_contents('文件名','"'.join('","',$r).'"'.PHP_EOL,FILE_APPEND);
}
Ⅶ PHP導出數據到CSV 如何排版
導給你的數據包一般是兩個文件,XXX.csv和XXX的文件夾。 把下面這短代碼復制到記事本里,然後把記事本的格式txt修改為bat格式的,最後放在XXX文件夾中雙擊運行即可。 代碼如下:(請復制,中間有空格的) ren *.tbi *.jpg 望採納給分~
Ⅷ 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
//文件名
$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;
?>