[英]Export data into csv file in php
我已經在php中創建了頁面,該頁面在不同的列中顯示了一些用戶數據,例如姓名,電子郵件,地址等。數據來自數據庫。 現在我要導出.csv文件中的所有信息,是否在php中有任何解決方案。
下面是在頁面上顯示數據的代碼。
<table width='98%' align="center" id='Categories_Main' cellspacing='0' cellpadding='0' class="table table-striped">
<tr height="25">
<th class="cat_list" colspan="4"><br /><?php echo $this->db->get_modules($cid);?><br /><br /></th>
<th></th>
</tr>
<tr>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Gender </a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Name</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Adress</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Email</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Number</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Course</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Price</a></th>
<th width="150" style="min-width:55px" class="nowrap center"><a class="hasTip">Action</a></th>
</tr>
<?php
$sql = "SELECT * FROM
prospective_request
ORDER BY name ASC limit $st,$limit";
$this->db->query($sql);
while($this->db->fetch_array())
{
?>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['user_title'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['name'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['address'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['email'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['number'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['course'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="nowrap has-context" width="200" style="min-width:55px">
<div class="pull-left"> <p style='margin-left: 10px; text-align:center'><?php echo showLink($this->db->record['total_price'],"?module=prospective_request&func=view&page=$page&cid=".$this->db->record['id'], $this->db->record['id']);?>
</p></div></th>
<th class="tabletxt" width="200" style="min-width:55px"><p align='left'>
<?php
if($cid){
?>
<a href="javascript:changeStatus(<?php echo $this->db->record['id'];?>,<?php echo ($this->db->record['status']==1)?"0":"1";?>, <?php echo $this->db->record['parent_id'];?>,<?php echo $page; ?>);"><img src="images/<?php echo ($this->db->record['status']==1)?"active":"inactive";?>.gif" border="0" align="absbottom" alt="<?php echo ($this->db->record['status']==1)?"Active - Click to deactivate":"Inactive - Click to activate";?>" /></a>
<?php } //IF ?>
<a href="index.php?module=prospective_request&func=edit&page=<?php echo $page;?>&cid=<?php echo $this->db->record['id'];?>&pid=<?php echo $cid;?>"><img src="images/editrec.png" border="0" align="absbottom" alt="Edit Record" /></a> <a href="javascript:delete_module('<?php echo $this->db->record['id']; ?>', '<?php echo $page;?>')" title="Delect Record"><img src="images/delete.gif" border="0" align="absbottom" alt="Delete Record" /></a>
</p> </th>
</tr>
<?php
} //While
?>
<form name="frmChangeStatus" action="index.php?module=prospective_request&func=view&page=<?=$page?>&cid=<?=$_GET['cid'];?>" method="post" >
<input type="hidden" name="action" value="" />
<input name="cat_id" type="hidden" value="" />
<input name="prospective_request" type="hidden" value="" />
</form>
<tr>
<td class="sub" align="center" colspan="6">
<?php
pagination($numpages, $page, "?module=".$_GET['module']."&func=".$_GET['func']."&cid=".$cid );
?>
</td>
</tr>
</table>
如果需要快速解決方案,請為要導出的數據行使用一個臨時變量。
例如,在您的while周期之前:
[...]
$this->db->query($sql);
$separator=";"; // Separator to be used in your file
$crlf="\r\n"; // End of line
// Array with the fields to be exported, indexeded on your db fields:
$a_exp=array("gender"="Gender"
,"name"=>"Name"
,"address"=>"Address"
,"email"=>"Email"
,"number"=>"Number"
,"course"=>"Course"
,"price"=>"Price"
,"action"=>"Action");
$csv=""; // Add additional headers here
//Header
while(list($field,$descr)=each($a_exp)) {
$csv.=$descr.$separator;
}
$csv.=$crlf;
while($this->db->fetch_array()) {
// And here you can add the rows
reset($a_exp);
while(list($field,$descr)=each($a_exp)) {
$csv.=$this->db->record[$field].$separator;
}
$csv.=$crlf;
[...]
}
// At the end of the while cycle you can save the file
$f=fopen("/path/to/your/file.csv","a");
fwrite($f,$csv);
fclose($csv);
或者,您可以使用內置的fputcsv函數( http://www.php.net/manual/zh/function.fputcsv.php )或現有的CSV導出庫。
以與表中顯示方式相同的方式將數據存儲在變量中
$content="col1,col2,col3\\n\\r";
$content.="data1,data2,data3\\n\\r";
$content.="data4,data5,data6\\n\\r";
上面代碼的第一行是excel中列的標題,csv中的\\n\\r
行與html表中的</tr><tr>
(新行)相同
運行此代碼以制作csv文件
$filename = "yourfile.csv";
$f = fopen($filename, 'w');
fwrite($f, $content);
fclose($f);
然后運行以下代碼進行文件下載
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
readfile($filename);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.