国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術(shù)及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - 基于php導出到Excel或CSV的詳解(附utf8、gbk 編碼轉(zhuǎn)換)

基于php導出到Excel或CSV的詳解(附utf8、gbk 編碼轉(zhuǎn)換)

2020-04-29 13:40PHP教程網(wǎng) PHP教程

本篇文章是對php導出到Excel或CSV(附utf8、gbk 編碼轉(zhuǎn)換)進行了詳細的分析介紹,需要的朋友參考下

php導入到excel亂碼是因為utf8編碼在xp系統(tǒng)不支持所有utf8編碼轉(zhuǎn)碼一下就完美解決了
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.?>  


訪問網(wǎng)站的時候就下載到excel里面
要弄單元格區(qū)別的話
用table表格做網(wǎng)頁的就可以了
====================== 其他方法 =============================
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文件,如果不存在則創(chuàng)建
 $title = array("First_Name","Last_Name","Contact_Email","Telephone"); //第一行數(shù)據(jù)
 $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); // 寫入數(shù)據(jù)
 fclose($fp); //關(guān)閉文件句柄
 echo "生成成功";
}
echo "<br>";
echo "<a href='?action=make'>生成csv文件</a>";
?>


也可以做一個封閉函數(shù):
封閉函數(shù)一:

復制代碼 代碼如下:


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');
*/


封閉函數(shù)二:

復制代碼 代碼如下:


<?
/**
 * 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); // 發(fā)送 Excel 文件名供下載
*/
// 生成 Excel
$filename = date('YmdHis').'.xls';
$workbook->send($filename); // 發(fā)送 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 中寫入數(shù)據(jù)
   }
}
/*
$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 中寫入數(shù)據(jù)
   }
}
*/
$workbook->close(); // 完成下載
?>


類二
-----函數(shù)說明

讀取Excel文件
function Read_Excel_File($ExcelFile,$Result)
$ExcelFile    Excel文件名
$Result        返回的結(jié)果
函數(shù)返回值    正常返回0,否則返回錯誤信息
返回的值數(shù)組
$result[sheet名][行][列] 的值為相應Excel Cell的值

建立Excel文件   
function Create_Excel_File($ExcelFile,$Data)
$ExcelFile    Excel文件名
$Data        Excel表格數(shù)據(jù)
請把函數(shù)寫在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]);
?>


延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 欧美成人专区 | 91亚洲精品一区 | 欧美高清成人 | 美女视频一区 | 欧美一级片在线 | 午夜寂寞少妇aaa片毛片 | 黄色在线观看 | 一区二区三区高清不卡 | 欧美一级免费 | 福利在线播放 | 中文字幕一区二区三区在线视频 | 亚洲视频欧美视频 | 88av网站| av网站免费看 | 国产激情视频 | 日韩精品在线一区 | 欧美综合色 | 国产成人综合一区二区三区 | 中文一区 | 日韩黄网 | 久久一| 草久久久| av在线成人 | 91尤物网站网红尤物福利 | 日韩一区二区免费视频 | 午夜在线 | 综合婷婷| 免费看黄的视频网站 | 国产欧美精品区一区二区三区 | 91精品国产高清久久久久久久久 | 午夜影视 | 国产亚洲精品美女久久久久久久久久 | 国产精品久久久久久久久久久久久久 | 精精国产xxxx视频在线播放 | 自拍在线 | 中文字幕在线一区 | 日韩免费视频 | 黄色av免费在线播放 | 久久精品久久综合 | 国产精品视频入口 | 最近日本韩国高清免费观看 |