大发体育娱乐在线-大发体育娱乐官方网站-大发体育娱乐登录网址
做最好的网站

php火速导出csv格式数据程序代码,编码调换

来源:http://www.dfwstonefabricators.com 作者:关于计算机 人气:116 发布时间:2019-09-26
摘要:csv文件格式 php导入到excel乱码是因为utf8编码在xp系统不协助全数utf8编码转码一下就完美消除了 utf-8编码案例 Php代码  代码如下 复制代码 代码如下: $exportdata = '规则111,有效期'."\n"; ?

csv文件格式

php导入到excel乱码是因为utf8编码在xp系统不协助全数utf8编码转码一下就完美消除了
utf-8编码案例 Php代码

 代码如下

复制代码 代码如下:

$exportdata = '规则111,有效期'."\n";

<?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 ");
?> 

csv文件在php输出必要运用header告诉浏览器格式

Php代码

 代码如下

复制代码 代码如下:

header("Content-type:application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$filename");

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

例子

gbk编码案例 Php代码

 代码如下

复制代码 代码如下:

$exportdata = '准则111,法规222,审222,规222,服2222,法则1,法规2,准则3,般配字符,设置时间,保藏期'."\n";
$date = date("YmdHis");
if (!empty($lists)){
    foreach($lists as $key => $value){
      $time = date("Y-m-d_H:i:s", $value['add_time']);
      $exportdata .= "\"\t".$value['Rule_id']."\",\"\t".$value['Rule_name']."\",\"\t".$value['Matching_level']."\",\"\t"."{$value['Rule_action']}"."\",\"\t".$value['Service_type']."\",\"\t".$value['Keyword1']."\",\"\t".$value['Keyword2']."\",\"\t".$value['Keyword3']."\",\"\t".$value['Matching_word']."\",\"\t".$value['Set_time']."\",\"\t".$value['Validation_time']."\"\n";
    }
}
$filename = "plcnetinfo_{$date}.csv";
header("Content-type:application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=$filename");
header("Expires: 0");
header("Pragma: public");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
     
echo(mb_convert_encoding($exportdata,"gb2312","UTF-8"));

<?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+mysql导入csv数据的事例

Php代码

 代码如下

复制代码 代码如下:

<?php
export_csv();
function export_csv() {
$filename = date('YmdHis').".csv";//文件名
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 array_to_string(get_export_data());
}
function array_to_string($result) {
if(empty($result)) {
return i("未有符合您必要的数目!^_^");
}
$data = '书ID,书名'."\n"; //栏目名称
$size_result = sizeof($result);
for($i = 0 ; $i < $size_result ; $i++) {
$data .= i($result[$i]['name']).','.i($result[$i]['option'])."\n";
}
return $data;
}
function get_export_data() {
$link = mysql_connect('localhost','root','121051xz') or die(mysql_error());
mysql_select_db('ht');
mysql_query("set names 'utf8'");//定义编码
$sql = 'select * from booklist';
$result = mysql_query($sql);
$rowaa = mysql_fetch_array($result);
$res = array();
$i = 0;
while($row = mysql_fetch_array($result)) {
$res[$i]['name'] = $row['bookid'];
$res[$i]['option'] = $row['bookname'];
$i++;
}
return $res;
}
function i($strInput) {
return iconv('utf-8','gb2312',$strInput);//页面编码为utf-8时利用,不然导出的华语为乱码
}

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的小经验 完美消除乱码难题
  • php导入导出excel实例
  • php中程导弹出多少到excel时数字变为科学计数的减轻方式
  • php将数据库导出成excel的艺术
  • PHP导出MySQL数据到Excel文件(fputcsv)
  • php导出excel格式数据难点
  • PHP达成导出带样式的Excel
  • PHP使用PHPexcel导入导出数据的点子
  • PHP导入导出Excel代码
  • php中通用的excel导出方法实例

本文由大发体育娱乐在线发布于关于计算机,转载请注明出处:php火速导出csv格式数据程序代码,编码调换

关键词:

上一篇:函数判断字符串否存在,扣丁学堂浅谈php

下一篇:没有了

最火资讯