问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

php读取excel,excel下多个个工作表,该怎么读取

发布网友 发布时间:2022-04-21 23:22

我来回答

2个回答

热心网友 时间:2024-01-07 13:39

php有个PHPExcel扩展,是可以实现你的要求的。
我这里有个可以读取多个工作薄的自定义excel类,试试看:

<?php
/**
*excel.class.php
*/
class Excel
{
/**
* 从excel文件中取得所有数据。并转换成指定编码格式。
* $toCode 表示需要转换成的编码格式,目前扩充了utf8,gbk2312,html三种格式。
* @return 返回二维数组。
*/
static function getDataFromExl($filePath,$toCode = "utf8")
{
$fh = @fopen($filePath,'rb');

if( !$fh || filesize($filePath)==0 )
{
return -1; //文件不可读或者为空
}

$fc = fread( $fh, filesize($filePath) );

@fclose($fh);

if( strlen($fc) < filesize($filePath) )
{
return -2; //读取错误
}
$exc = new ExcelFileParser();

$res = $exc->ParseFromString($fc);

$ws_number = count($exc->worksheet['name']);//取得工作薄数量

if( $ws_number < 1 )
{
return -3;
}

for ($ws_n = 0; $ws_n < $ws_number; $ws_n++)
{
$ws = $exc -> worksheet['data'][$ws_n];
$data = $ws['cell'];
foreach($data as $k=>$v) //一行数据
{
$row = null;
foreach($v as $a=>$d) //一行数据的一个字节
{
$value = null;
if(count($d) == 1)
{
continue;
}
if($d['type'] == 0) //如果是字符类型则转换成为指定编码格式
{
$ind = $d['data'];
if( $exc->sst['unicode'][$ind] ) //返回数据编码格式
{
switch($toCode)
{
case "utf8":
$s = Strings::uc2utf8($exc->sst['data'][$ind]);
break;
case "gbk":
$s = Strings::uc2gbk($exc->sst['data'][$ind]);
break;
case "html":
$s = Strings::uc2html($exc->sst['data'][$ind]);
break;
default:
$s = Strings::uc2utf8($exc->sst['data'][$ind]);
break;
}
}
else
{
$s = $exc->sst['data'][$ind];
}
if( strlen(trim($s))==0 || $s === null )
{
$value = '';
}
else
{
$value = $s;
}
}
elseif($d['type'] == 3)
{
$time_list = explode('.', $d['data']);
$time_format = $time_list[2].'-'.$time_list[0].'-'.$time_list[1];
$timestamp = strtotime($time_format);
$value = date("Y-m-d H:i:s", $timestamp);
}
else
{
$value = $d['data'];
}
$row[$a] = $value;
}
$recordList[] = $row;
}
}
return $recordList;
}
}
require_once('./excel.class.php');
$emailData = Excel::getDataFromExl($_FILES['file_name']['tmp_name']);

热心网友 时间:2024-01-07 13:39

php读取excel,excel下多个个工作表的方法:
1、利用PHPExcelReader来完成多个excel的读取。
2、PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式(.xlsx)文件的读取。
3、下载PHPExcel后保存到自己的类文件目录中,然后使用以下代码可以打开Excel 2007(xlsx)格式的文件:
require_once '/libs/PHPExcel-1.8.0/Classes/PHPExcel.php'; //修改为自己的目录
echo '<p>TEST PHPExcel 1.8.0: read xlsx file</p>';
$objReader = PHPExcel_IOFactory::createReaderForFile($filename);
$objPHPExcel = $objReader->load($filename);
$objPHPExcel->setActiveSheetIndex(1);
$date = $objPHPExcel->getActiveSheet()->getCell('A16')->getValue();
输出$date变量就能够看到文件中的内容了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Tenda腾达 F3 单频300M家用百兆无线路由器Wi-Fi 4 单个装-详细介绍... 电脑看电影黑屏电脑看视频时黑屏但是有声音怎么办 看电影电脑就黑屏笔记本电脑看电影时自动黑屏如何解决 看电影电脑黑屏为什么一看电影电脑就黑屏 电脑看看视频突然黑屏为什么我的电脑看视频的时候会出现黑屏 电脑看电影,黑屏 为什么电脑上看电影都是黑屏用电脑看电视忽然黑屏是什么原因怎么解决... 电脑看电影会黑屏笔记本电脑看视频总是黑屏怎么办 姐姐你好 我也是山东考生 想问问你报了哪个学校 鲁东大学09年招生 femdom这个单词是什么意思 当水面到达杯口时,放入水中的回形针的多少与哪些... php导入excel 怎么获取excel表格数据 “femdom”这个单词是什么意思? 探究实验:装满水的杯子里放入多少回形针与哪些因... php 下载excel后乱码,求大侠解决, 装满水的杯子里还能放多少回形针? femdom怎么回事啊? PHP如何导出Excel文件 做完“装满水的杯子里还能放多少回形针”的实验,小... php 无法下载excel文件,输出到浏览器是乱码。 探究实验:装满水的杯子里放入多少回形针与哪些因素有 php怎么导出大量数据的Excel 探究能放入回形针的数量与哪些因素有关 PHP请问我需要在页面上显示 EXCEL表格,并且能下载... 装满水的杯子能放多少回形针 php中excel文件下载 在填满水的杯子中放回形针,回形针的数量与哪些因... php导出excel表、压缩成文件下载到本地如何实现? 放入水杯中的回形针的个数与哪些因素有关 我下载一个表,下载链接最后显示的是一个excel.php... 你认为 活动0.3 中放入水杯中的回形针数量与那些因... fendom的翻译是:什么意思 往放满水的杯子里放回形针,放入回形针的数量与哪... 怎么删除华为手机弹出来的每日定时提醒 南通中学新生16号带什么东西去学校 装满水的杯子还能放多少回形针实验与那些因素有关 往水杯里放回形针作文400字 femdom 这个英文单词是什么意思 初二 物理 装满水的杯子能放多少回形针 请详细解答... PHP如何将查询出来的数据导出成excel表格(最好做... femdom什么意思? 如何读取excel文件 php femdom意思 PHP如何导出当前页面中的表格至Excel femdom什么意思 PHP 当前表单数据保存为excel文件 femdem什么意思 forced femdom是什么意思 每天吃鸡蛋真的能减肥吗?