gpt4 book ai didi

基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了 utf-8编码案例 Php代码 。

复制代码 代码如下

<?php header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); 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/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment;filename=11.xls "); header("Content-Transfer-Encoding: binary "); ?>  。

Php代码 。

复制代码 代码如下

<?    $filename="php导入到excel-utf-8编码";    $filename=iconv("utf-8", "gb2312", $filename);    echo $filename;    ?>   。

gbk编码案例 Php代码 。

复制代码 代码如下

<?php header("Content-Type: application/vnd.ms-excel; charset=UTF-8"); 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/octet-stream"); header("Content-Type: application/download"); header("Content-Disposition: attachment;filename=11.xls "); header("Content-Transfer-Encoding: binary "); ?>  。

Php代码 。

复制代码 代码如下

0.<?    0.$filename="php导入到excel-utf-8编码";    0.echo $filename;    0.?>   。

访问网站的时候就下载到excel里面 要弄单元格区别的话 用table表格做网页的就可以了 ====================== 其他方法 ============================= 1、制作简单 Excel 。

复制代码 代码如下

0.<?php   0.header("Content-type:application/vnd.ms-excel");   0.header("Content-Disposition:filename=php2excel.xls");   0.  0.echo "A1/t B1/t C1/n";   0.echo "A2/t B2/t C2/n";   0.echo "A3/t B3/t C3/n";   0.echo "A4/t B4/t C4/n";   0.?>  。

2、制作简单 CSV  。

复制代码 代码如下

<?php $action =$_GET['action']; if ($action=='make'){  $fp = fopen("demo_csv.csv","a"); //打开csv文件,如果不存在则创建  $title = array("First_Name","Last_Name","Contact_Email","Telephone"); //第一行数据  $data_1 = array("42343","423432","4234","4234");  $data_2 = array("4234","Last_Name","Contact_Email","Telephone");  $title = implode(",",$title); //用 ' 分割成字符串  $data_1 = implode(",",$data_1); // 用 ' 分割成字符串  $data_2 = implode(",",$data_2); // 用 ' 分割成字符串  $data_str =$title."/r/n".$data_1."/r/n".$data_2."/r/n"; //加入换行符  fwrite($fp,$data_str); // 写入数据  fclose($fp); //关闭文件句柄  echo "生成成功"; } echo "<br>"; echo "<a href='?action=make'>生成csv文件</a>"; ?> 。

也可以做一个封闭函数: 封闭函数一:

复制代码 代码如下

function exportToCsv($csv_data, $filename = 'export.csv') {     $csv_terminated = "/n";     $csv_separator = ",";     $csv_enclosed = '"';     $csv_escaped = "//";     // Gets the data from the database     $schema_insert = '';     $out = '';     // Format the data     foreach ($csv_data as $row)     {         $schema_insert = '';         $fields_cnt = count($row);         //printr($row);         $tmp_str = '';         foreach($row as $v)         {             $tmp_str .= $csv_enclosed.str_replace($csv_enclosed, $csv_escaped . $csv_enclosed, $v).$csv_enclosed.$csv_separator;         } // end for         $tmp_str = substr($tmp_str, 0, -1);         $schema_insert .= $tmp_str;         $out .= $schema_insert;         $out .= $csv_terminated;     } // end while     header("Cache-Control: must-revalidate, post-check=0, pre-check=0");     header("Content-Length: " . strlen($out));     header("Content-type: text/x-csv");     header("Content-Disposition:filename=$filename");     echo $out; } /* $csv_data = array(array('Name', 'Address')); array_push($csv_data, array($row['name'],$row['address'])); ... exportToCsv($csv_data,'new_file.csv'); */ 。

封闭函数二:

复制代码 代码如下

<? /**  * Simple class to properly output CSV data to clients. PHP 5 has a built  * in method to do the same for writing to files (fputcsv()), but many times  * going right to the client is beneficial.  *  * @author Jon Gales  */ class CSV_Writer {     public $data = array();     public $deliminator;     /**      * Loads data and optionally a deliminator. Data is assumed to be an array      * of associative arrays.      *      * @param array $data      * @param string $deliminator      */     function __construct($data, $deliminator = ",")     {         if (!is_array($data))         {             throw new Exception('CSV_Writer only accepts data as arrays');         }         $this->data = $data;         $this->deliminator = $deliminator;     }     private function wrap_with_quotes($data)     {         $data = preg_replace('/"(.+)"/', '""$1""', $data);         return sprintf('"%s"', $data);     }     /**      * Echos the escaped CSV file with chosen delimeter      *      * @return void      */     public function output()     {         foreach ($this->data as $row)         {             $quoted_data = array_map(array('CSV_Writer', 'wrap_with_quotes'), $row);             echo sprintf("%s/n", implode($this->deliminator, $quoted_data));         }     }     /**      * Sets proper Content-Type header and attachment for the CSV outpu      *      * @param string $name      * @return void      */     public function headers($name)     {         header('Content-Type: application/csv');         header("Content-disposition: attachment; filename={$name}.csv");     } } /* //$data = array(array("one","two","three"), array(4,5,6)); $data[] = array("one","two","three"); $data[] = array(4,5,6); $csv = new CSV_Writer($data); $csv->headers('test'); $csv->output(); */ 。

3. 使用excel类 。

复制代码 代码如下

<?php require_once 'Spreadsheet/Writer.php'; $workbook = new Spreadsheet_Excel_Writer(); /* 生成 CSV $filename = date('YmdHis').'.csv'; $workbook->send($filename); // 发送 Excel 文件名供下载 */ // 生成 Excel $filename = date('YmdHis').'.xls'; $workbook->send($filename); // 发送 Excel 文件名供下载 $workbook->setVersion(8); $workbook->setBIFF8InputEncoding('UTF-8'); $worksheet =& $workbook->addWorksheet("Sheet-1"); $data[]= array('id','username','company','email','mob','daytime','intent'); $data[] = array(1,'老梁','**工作室','jb51.net','1363137966*',time(),'y'); $total_row = count($data); $total_col = count($data[0]); for ($row = 0; $row < $total_row; $row ++) {    for ($col = 0; $col < $total_col; $col ++) {   $worksheet->writeString($row, $col, $data[$row][$col]); // 在 sheet-1 中写入数据    } } /* $worksheet =& $workbook->addWorksheet("Sheet-2"); $data[]= array('id','username','company','email','mob','daytime','intent'); $data[] = array(1,'老梁','**工作室','jb51.net','1363137966*',time(),'y'); $total_row = count($data); $total_col = count($data[0]); for ($row = 0; $row < $total_row; $row ++) {    for ($col = 0; $col < $total_col; $col ++) {   $worksheet->writeString($row, $col, $data[$row][$col]); // 在 sheet-2 中写入数据    } } */ $workbook->close(); // 完成下载 ?> 。

类二 -----函数说明 读取Excel文件 function Read_Excel_File($ExcelFile,$Result) $ExcelFile    Excel文件名 $Result        返回的结果 函数返回值    正常返回0,否则返回错误信息 返回的值数组 $result[sheet名][行][列] 的值为相应Excel Cell的值 建立Excel文件    function Create_Excel_File($ExcelFile,$Data) $ExcelFile    Excel文件名 $Data        Excel表格数据 请把函数写在PHP脚本的开头  例1:

复制代码 代码如下

<? require "excel_class.php"; Read_Excel_File("Book1.xls",$return); for ($i=0;$i<count($return[Sheet1]);$i++) {     for ($j=0;$j<count($return[Sheet1][$i]);$j++)     {         echo $return[Sheet1][$i][$j]."|";     }     echo "<br>"; } ?> 。

例2:

复制代码 代码如下

<? require "excel_class.php"; Read_Excel_File("Book1.xls",$return); Create_Excel_File("ddd.xls",$return[Sheet1]); ?> 。


最后此篇关于基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)的文章就讲到这里了,如果你想了解更多关于基于php导出到Excel或CSV的详解(附utf8、gbk 编码转换)的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com