PHP学习第N天:用PHPExcel将Excel转化为数组输出
2014-09-06 01:08
295 查看
这些文章都是用来记录php学习经历的,会有很多bug和错误,参考需谨慎。
工作第N天,再过两天就该发工资了,激动一下!
利用PHPExcel将读取和导出Excel文件非常方便,但是初次使用会有很多各种各样的小问题,我将这两天遇到的问题和解决方法整理了一下,希望能够对大家有所帮助。
在整理过程中我参考和使用了大量的互联网上的资料和代码。包括但不仅于下面这些,在这里对各位大牛表示感谢。
PHPExcel下载链接
http://blog.csdn.net/yanhui_wei/article/details/7930502
/article/4973162.html
/article/5594157.html
/article/5017718.html
前端页面代码:
Excel2arr:
工作第N天,再过两天就该发工资了,激动一下!
利用PHPExcel将读取和导出Excel文件非常方便,但是初次使用会有很多各种各样的小问题,我将这两天遇到的问题和解决方法整理了一下,希望能够对大家有所帮助。
在整理过程中我参考和使用了大量的互联网上的资料和代码。包括但不仅于下面这些,在这里对各位大牛表示感谢。
PHPExcel下载链接
http://blog.csdn.net/yanhui_wei/article/details/7930502
/article/4973162.html
/article/5594157.html
/article/5017718.html
前端页面代码:
<html> <body> <form action="action.php" method="post" enctype="multipart/form-data"> <label for="file">Filename:</label> <input type="file" name="file" id="file"/> <br/> <input type="submit" name="submit" value="Submit"/> </form> </body> </html>
Excel2arr:
<?php /** * 符合条件的文件格式 */ $filename = $_FILES['file']['name']; /** * 文件名 */ $ext = preg_split("/\./", $filename); /** * 分割文件名 */ $ext = strtolower($ext[1]); /* * 获取文件后缀名 */ $allowed_types = array("xls", "xlsx"); $filePath = dirname(__FILE__) . "/" . $_FILES["file"]["name"]; if (!in_array($ext, $allowed_types)) { echo "File type is wrong!"; die; } else if (file_exists($filePath)) { echo "A file with this name already exists!"; die; } else { move_uploaded_file($_FILES["file"]["tmp_name"], $filePath); } /** * @param $val * @return string * 检查文件名是否符合要求,如果符合,就保存到指定路径。如果不符合,报错。 */ require_once dirname(__FILE__) . "/PHPExcel/Classes/PHPExcel.php"; //$filePath=$_FILES["file"]["tmp_name"]; //sleep(50); $PHPExcel = new PHPExcel(); //默认用excel2007读取excel,若格式不对,则用之前的版本进行读取 $PHPReader = new PHPExcel_Reader_Excel2007(); if (!$PHPReader->canRead($filePath)) { $PHPReader = new PHPExcel_Reader_Excel5(); if (!$PHPReader->canRead($filePath)) { return $this->error(null, "no file"); } } $PHPExcel = $PHPReader->load($filePath); $sheetCount = $PHPExcel->getSheetCount(); $sheetNames = $PHPExcel->getSheetNames(); //var_dump($sheetNames); //die; /**读取excel文件中有多少个sheet*/ $objExcel = array(); for ($SheetID = 0; $SheetID < $sheetCount; $SheetID++) { /**读取excel文件中的工作表*/ $name = $sheetNames[$SheetID]; $currentSheet = $PHPExcel->getSheetByName($name); $name = iconv("utf-8", "gb2312", $name); /**取得最大的列号*/ $allColumn = $currentSheet->getHighestColumn(); /**取得一共有多少行*/ $allRow = $currentSheet->getHighestRow(); for ($currentRow = 1; $currentRow <= $allRow; $currentRow++) { /**从第A列开始输出*/ for ($currentColumn = 'A'; $currentColumn <= $allColumn; $currentColumn++) { $val = $currentSheet->getCellByColumnAndRow(ord($currentColumn) - 65, $currentRow)->getValue(); $val = iconv("utf-8", "gb2312", $val); $objExcel[$name][$currentRow - 1][ord($currentColumn) - 65] = $val; //编码需要转换成gb2312 /* $val = urlencode($val); $objExcel[$name][$currentRow - 1][ord($currentColumn) - 65] = urldecode($val); */ } } } unlink($filePath); /* * $objExcel = json_encode($objExcel); * $objExcel = urldecode($objExcel); * 读取文件中的内容,因为json_encode()的参数必须是utf-8编码。为了保证汉字输出的结果,这里先将数组中的内容用urlencode进行编码, * 在被json_encode()编码之后,再用urldecode解码。 */ //return $objExcel; var_dump($objExcel); ?>
相关文章推荐
- PHP学习:数组的转化
- 我的php学习笔记(45) PHP输出CSV、Excel
- PHPExcel 格式化数组输出excel
- php 数组学习
- 使用 PHP 输出带格式的 Excel 文件
- php数组学习一
- php数组学习一
- php度取excel内容 并对其unicode编码转化成gb2312
- PHP学习笔记 2009-8-15_2 输出可变日期函数:generateAlterableTime()
- 把数组转化成一个xml字符串--php
- PHP开发中多维数组无法正常输出的问题
- PHP 数组学习排序全接触第1/2页
- php学习笔记:php中的数组
- php数组学习与排序:each
- php数组学习与排序:each与list结合
- c#写excel 转化成数组写到excel中速度比较快
- PHP学习第六节----数组的基础使用
- 如何将PHP的数组转化成对象
- php数组学习二
- PHP 数组学习排序全接触第1/2页