小码哥的IT人生

首页 > PHP > php应用

php操作EXCLE(通过phpExcle实现读excel数据)

php应用 2022-07-15 09:36:18小码哥的IT人生shichen

这里笔者记录了常用的phpexcel插件读取Excel文件示例,phpexcel下载地址有很多,常见的如:GitHub下载(https://github.com/PHPOffice/PHPExcel,速度较慢,不建议!)脚本之家(https://www.jb51.net/codes/778055.html)、统一下载(https://www.tongyixiazai.com/soft/10001882.html)等等,其他下载源读者可自行选择。

示例代码如下:

<?php
 require_once 'Classes/PHPExcel.php';
 ///**对excel里的日期进行格式转化*/
function GetData($val){
$jd = GregorianToJD(1, 1, 1970);
$gregorian = JDToGregorian($jd+intval($val)-25569);
return $gregorian;/**显示格式为 “月/日/年” */
}
$filePath = 'test1.xls';
$PHPExcel = new PHPExcel();
///**默认用excel2007读取excel,若格式不对,则用之前的版本进行读取*/
$PHPReader = new PHPExcel_Reader_Excel2007();
if(!$PHPReader->canRead($filePath)){
$PHPReader = new PHPExcel_Reader_Excel5();
if(!$PHPReader->canRead($filePath)){
echo 'no Excel';
return ;
}
}
$val=array();//建立$val数组保存学生信息
$PHPExcel = $PHPReader->load($filePath);
///**读取excel文件中的第一个工作表*/
$currentSheet = $PHPExcel->getSheet(0);
///**取得最大的列号*/
$allColumn = $currentSheet->getHighestColumn();
///**取得一共有多少行*/
$allRow = $currentSheet->getHighestRow();
///**从第二行开始输出,因为excel表中第一行为列名*/
echo "<table>";
for($y = 1;$y <= $allRow;$y++){
    echo "<tr>";
///**从第A列开始输出*/
for($x= 'A';$x<= $allColumn; $x++){
$val[$y][$x] = $currentSheet->getCellByColumnAndRow(ord($x) - 65,$y)->getValue();
///**ord()将字符转为十进制数*/
//if($x == 'A')
//{
//echo GetData($val)."t";
//}else{
//echo $val;
///**如果输出汉字有乱码,则需将输出内容用iconv函数进行编码转换,如下将gb2312编码转为utf-8编码输出*/
$val[$y][$x]= iconv('utf-8','gb2312', $val[$y][$x])."t";
echo "<td>".$val[$y][$x]."</td>";
//}
}
echo "</tr>";
}
echo "</table>";
echo "n";
?>

附:示例中的test1.xls如下:

版权所有 © 小码哥的IT人生
Copyright © phpcodeweb All Rights Reserved
ICP备案号:苏ICP备17019232号-2  

苏公网安备 32030202000762号

© 2021-2024