- 浏览: 13731066 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
链接:CSV 导入mysql 数据库
php导入到excel-支持utf8和gbk两种编码
php导入到excel乱码是因为utf8编码在xp系统不支持所有utf8编码转码一下就完美解决了
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 "); ?>
<? $filename="php导入到excel-utf-8编码"; $filename=iconv("utf-8", "gb2312", $filename); echo $filename; ?>
gbk编码案例
<?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 "); ?>
<? $filename="php导入到excel-utf-8编码"; echo $filename; ?>
访问网站的时候就下载到excel里面
要弄单元格区别的话
用table表格做网页的就可以了
例如:
<?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 "); $filename="<table> <tr> <th>left_1</th> <td>right_1</td> </tr> <tr> <th>left_2</th> <td>right_2</td> </tr> </table>"; echo $filename; ?>
====================== 其他方法 =============================
1、制作简单 Excel
<?php header("Content-type:application/vnd.ms-excel"); header("Content-Disposition:filename=php2excel.xls"); echo "A1\t B1\t C1\n"; echo "A2\t B2\t C2\n"; echo "A3\t B3\t C3\n"; echo "A4\t B4\t C4\n"; ?>
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,'老梁','**工作室','myemail@gmail.com','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,'老梁','**工作室','myemail@gmail.com','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]); ?>
- excel_class.zip (10.6 KB)
- 下载次数: 222
- spreadsheet_excel.rar (283.7 KB)
- 下载次数: 283
发表评论
-
PHP: 在类(class)中加载动态函数, 变量函数或半变量函数 variable function/method
2016-09-03 07:54 7171最终实例在下方 以前 ... -
MySQL入门 (七) : 储存引擎与资料型态
2016-09-03 07:49 45531 表格与储存引擎 表格(table)是资料库中用来储存 ... -
MySQL入门 (六) : 字元集与资料库
2016-09-03 07:47 45661 Character Set与Collation 任何 ... -
MySQL入门 (五) : CRUD 与资料维护
2016-09-03 07:46 54811 取得表格资讯 1.1 DESCRIBE指令 「 ... -
MySQL入门 (四) : JOIN 与UNION 查询
2016-09-03 07:42 45001 使用多个表格 在「world」资料库的「countr ... -
PHP: 关键字global 和 超全局变量$GLOBALS的用法、解释、区别
2016-08-31 12:07 5039$GLOBALS 是一个关联数组,每一个变量为一个 ... -
MySQL入门 (三) : 运算式与函式
2016-08-31 12:01 4383运算式(expressions)已经 ... -
MySQL入门 (二) : SELECT 基础查询
2016-08-31 11:56 46811 查询资料前的基本概念 1.1 表格、纪录 ... -
MySQL入门 (一) : 资料库概论与MySQL的安装
2016-08-31 11:51 44571. 储存与管理资料 储存与管理资料一直是资讯应用上最基本 ... -
MySQL入门 (九) : 子查询 Subquery
2016-08-30 02:26 44471 一个叙述中的查询叙述 子查询(subquery)是一 ... -
PHP: 用readonly取代disabled来获取input值 submit a disabled input in a form could not ge
2016-08-30 02:21 2706The form is like below; <f ... -
PHP7革新与性能优化
2016-08-30 02:20 2146有幸参与2015年的PHP技 ... -
Mysql: 图解 inner join、left join、right join、full outer join、union、union all的区别
2016-08-18 06:03 3122对于SQL的Join,在学习起来可能是比较乱的。我们知道, ... -
Comet 反Ajax: 基于jQuery与PHP实现Ajax长轮询(LongPoll)
2016-08-18 06:00 1377传统的AJAX轮询方式,客服端以用户定义的时间间隔去服务器上 ... -
PHP:ServerPush (Comet推送) 技术的探讨
2016-08-18 05:58 1039PHP中Push(推送)技术的探讨 [http://vi ... -
PHP: 手把手编写自己的 MVC 框架实例教程
2016-08-16 05:33 18131 什么是MVC MVC模式(Model-View-Con ... -
PHP5: mysqli 插入, 查询, 更新和删除 Insert Update Delete Using mysqli (CRUD)
2016-07-29 12:55 1747原文: PHP5: mysqli 插入, 查询, 更新 ... -
MongoDB 教程索引 (附有视频)
2016-07-27 10:54 736MongoDB 教程索引 MongoDB 教程一: ... -
Node.js 模块之Nimble流程控制
2016-07-18 12:59 1081NodeJS异步的特性有时候 ... -
Node.js web应用模块之Supervisor
2016-07-18 12:56 2327在开发或调试Node.js应 ...
相关推荐
在PHP开发中,有时我们需要将数据导出为...处理中文字符时,注意编码的转换,尤其是从UTF-8到GBK或反之亦然,以确保数据在不同系统间兼容。在实际项目中,确保对输入数据进行适当的编码检测和转换,以避免乱码问题。
在本示例中,我们首先使用`array_map()`遍历每一行数据,然后对每一行的每个元素调用`iconv()`函数,将GBK编码转换为UTF-8。 总结,导出CSV文件无乱码的关键在于: 1. 确保文件头设置了正确的字符编码,例如`...
在处理中文数据时,用户可能会遇到一个常见问题:当他们尝试导出数据到Excel或CSV格式时,中文字符显示为乱码。这个问题通常是由于字符编码不兼容或者配置不当引起的。 首先,我们要理解乱码的根源。在计算机系统中...
4. **转换编码**:如果无法确定或修改原始编码,可以先将文件转换为已知的编码,如UTF-8,再进行读取。 对于解析CSV文件,Java社区提供了许多第三方库,如OpenCSV、SuperCSV和Apache Commons CSV等,它们提供了更...
5. 支持CSV编码设置:如UTF-8、GBK等,确保跨平台和跨语言环境的兼容性。 在实际应用中,掌握CSV文件的处理技巧对于数据处理和分析工作至关重要。了解如何使用CSV导出工具2能够提高工作效率,尤其是在需要处理大量...
例如,一个程序可能需要读取GBK编码的日志文件,然后将其转换为UTF-8格式以便在网络上分享或存储在只支持UTF-8的数据库中。 综上所述,易语言文件编码转换源码是一个实用的工具,它涵盖了文件操作和编码转换的核心...
- 文本编码:CSV文件可能使用不同的字符编码,如UTF-8或GBK,确保在转换时正确处理,避免乱码问题。 - 数值和日期:Excel可能会自动将数字和日期格式化,根据需要调整单元格格式。 - 大小限制:.xls格式对单个文件...
echo iconv("UTF-8", "GBK//IGNORE", $content); ``` 这里使用了iconv函数进行字符编码转换。 8. **注意无法导出图像**: 描述中提到,PHPSpreadsheet不支持直接导出图像到Excel文件。如果需要在Excel中包含...
- 编码兼容性:考虑到不同系统的编码差异,如UTF-8和GBK。 - 处理特殊字符:例如,CSV中可能包含逗号、引号等特殊字符,需要正确处理以避免数据混乱。 - 性能优化:对于大型CSV文件,可能需要采用缓冲读取或其他优化...
例如,UTF-8是最常见的编码,但某些文件可能使用GBK或其他编码。在读取文件时,需要指定正确的编码,以避免乱码。 此外,数据预处理也是关键步骤,包括处理缺失值、异常值,以及数据类型转换等。例如,Excel可能将...
### Java读取与写入CSV文件的详细解析 在日常的软件开发中,处理CSV(Comma Separated ...最后,值得注意的是,虽然给出的代码示例使用了GBK编码,但在国际化的项目中,更推荐使用UTF-8编码,以确保兼容性和可移植性。
在处理中文乱码时,可以考虑将字符串从UTF-8编码转换为GBK,例如使用`mb_convert_encoding`函数。 总之,选择哪种方法取决于项目需求,如数据的复杂性、文件大小、格式要求以及服务器环境。对于小型项目或简单数据...
默认情况下,CSV文件使用UTF-8编码,但某些情况下可能是其他编码,如GBK。如果不正确地处理编码,可能会导致乱码问题。同时,Excel在保存CSV文件时,有时会自动转换特殊字符,这可能会影响数据的原始状态。 最后,...
3. **编码问题**:CSV文件可能使用不同的字符编码,如UTF-8、GBK等。在读取文件时,确保指定正确的编码,否则可能会出现乱码。 4. **错误处理**:上述示例代码包含异常处理,捕获可能出现的`FileNotFoundException`...
在处理CSV文件时,可能遇到不同编码格式的数据,例如GBK、UTF-8等。`League\Csv`库允许我们指定编码,以确保数据正确读取和写入。在上面的代码中,我们已经设置了`setEncoding`方法来指定编码。 6. 数据验证与转换...
本篇将介绍如何使用原生PHP实现导出CSV格式的Excel文件,包括必要的源码分析。 首先,创建一个名为`Export.php`的文件,定义一个名为`Export`的类,该类包含一个方法`exportToCsv()`,用于处理CSV文件的生成。以下...
- CSV文件编码通常是UTF-8,但也可能是其他编码,如GBK。在读取时需注意文件的实际编码,避免出现乱码问题。 - 如果CSV文件包含标题行,可以使用`csv.DictReader()`,它会将每一行转换为字典,键是标题,值是对应的...
7. **编码支持**:类可能会处理字符编码问题,确保数据在不同编码环境下能正确读写,如UTF-8、GBK等。 8. **头行处理**:在读取CSV时,类可能有选项决定是否保留或忽略第一行(通常为列名),并提供获取或设置列名...