本篇文章是对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中文网!
相关推荐:
ThinkPHP利用PHPExcel实现Excel数据的导入导出
以上是基于php导出到Excel或CSV的方法的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了PHP数据对象(PDO),这是PHP中数据库访问的扩展名。它通过准备好的语句及其对MySQLI的好处,包括数据库抽象和更好的错误处理,强调了PDO在增强安全性方面的作用。

memcache和memcached是通过减少数据库负载加快Web应用程序的PHP缓存系统。可以在仔细的密钥管理的项目之间共享一个实例。

本文讨论了JavaScript和PHP如何通过HTTP请求间接相互作用,因为它们的环境不同。它涵盖了将数据从JavaScript发送到PHP的方法

文章讨论了PHP从1995年的“个人主页工具”到1998年的“ PHP:超文本预处理器”的演变,这反映了其超越个人网站的扩展使用。

防止会话固定攻击的有效方法包括:1.在用户登录后重新生成会话ID;2.使用安全的会话ID生成算法;3.实施会话超时机制;4.使用HTTPS加密会话数据,这些措施能确保应用在面对会话固定攻击时坚不可摧。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

SublimeText3汉化版
中文版,非常好用

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

DVWA
Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中