- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
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的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) @ 目录 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) 1. 基本
八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) @ 目录 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) 1. 基本介绍
在sql语句执行前 DB::enableQueryLog(); sql sql sql sql sql dd(DB::getQueryLog()); ?
本文实例讲述了PHP global全局变量的使用与注意事项。分享给大家供大家参考,具体如下: 使用global在方法里面声明外部变量为全局变量,即可以调用该变量。 示例1. global基本用法
SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前sessio
性能测试,在编写代码后,单元测试及性能测试是重要的验收点,好的性能测试可以让我们提前发现程序中存在的问题。 测试用例 在Rust中,测试通常有两部分,一部分是文档测试,一部分是模块测试。 通常我们
我正在制作一个非常简单的应用程序,它有一个输入框和一个按钮。 Input 用于输入email 使用事件处理器订阅按钮 输入电子邮件并点击按钮将进行 api 调用,(此方法有效) subscribe
我正在制作一个非常简单的应用程序,它有一个输入框和一个按钮。 Input 用于输入email 使用事件处理器订阅按钮 输入电子邮件并点击按钮将进行 api 调用,(此方法有效) subscribe
一个星期以来,我一直在努力寻找如何做到这一点,但一直无法做到。我的 html 导航栏看起来像这样。
我们经常在程序设计中用到的数组,同样在脚本中很常用。本节就详细介绍一下数组,以及哈希表在PowerShell中的使用。 数组 在PowerShell中,声明一个变量为数组时,需要使用符号&quo
方法一:先查询出所有记录,然后在逻辑层转化为拼音首字母后查询,显然傻瓜才会这么做。 方法二:在需要搜索的表中添加一个字段用于存放被检索字段内容对应的拼音,在搜索的时候同时去查询这两个字
intellij idea2021是一款java开发神器,功能丰富好用,本文提供其安装包、破解版、补丁、绿色版、激活码等下载,手把手教大家完美安全永久安装破解,亲测绝对可以永久激活。 此方法支持所有的
我在构建一个网站时遇到了一个问题,即我的 h1 内容与我的导航栏重叠。我在 css 中使用了 margin-top 标签,但它不起作用。
前言 时隔2年.(PS:其实陆陆续续在优化,不过没发博客).. .本组件又迎来了新的更新... 很久没更新博客了.生了娃,换了工作单位,太忙了..实在抱歉 NE
为什么 CLGeocoder reverseGeocodeLocation 在查找地址时返回具有不同纬度/经度的地标? 背景:就用户在 map 上“长按”以放置图钉而言,但我的代码对此进行了反向地理编
我是一名优秀的程序员,十分优秀!