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

作者&投稿:针阳 (若有异议请与网页底部的电邮联系)
php读取excel,excel下多个个工作表,该怎么读取~

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']);

选中所有的工作簿,选中想要复制的内容,选择“复制”,我们在菜单栏中找到编辑,在编辑菜单中找到填充,在填充的次级菜单中,选择至同组工作表。弹出了一个“填充成组工作表”对话框。这个对话框中有三个选项,第一个选项全部指的是将内容和格式都复制过去。第二个选项只复制内容,第三个选项只是复制格式。我们选择全部吧。点击确定就完成了复制。这时候你随便点开一个工作表,发现都已经复制成功。

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']);

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变量就能够看到文件中的内容了。

使用开源项目的代码可以帮你实现,,搜一下phpoffice,这个东东也许对你有用


我新买的惠普台式机是WIN7系统的怎么EXCEL都无法编辑文字啊 我换了2007...
一、建议您可以尝试使用其他的编辑软件看看是否可以正常编辑,如果可以正常编辑,那么您所述的问题很可能是Excel软件方面的问题导致的了,建议您可以直接联系微软的技术部门进行咨询看看这里的工程师是否有好的方法可以帮到您,微软公司客户服电话:800-820-3800 .二、如果您使用其他的编辑软件也有问题,建议...

我HPDV4机型的笔记本,从昨天开开始一直在更新Excel 2003 安全更新 (KB...
您好,感谢您选择惠普产品。根据您的描述,建议您参考下列信息:excel 2003程序包含在offices 2003软件中,offices软件是由微软提供支持,不确认这个现象产生原因及操作方法。其他本友反馈调整方法如下,您可以参考操作:KB2810048程序包含在excel 2003更新信息中,属于offices 软件程序,若无法实现更新,建议您...

hp1008打印机打印EXCEL格式的文件不能连续打印是怎么回事?
开始菜单 设置 打印机和传真 进去后看到HP1008打印机 右击属性 看见最上面一排的选项卡 点高级 选择直接打印到打印机 应用 确定OK

急!我的是HP的新电脑,装了EXCEL07,在同时打开两个表格做复制粘贴的时...
可以完全卸载之前版本Excel,重新安装软件,重新创建Excel表格复制粘贴测试; b.如果系统下上述操作问题依旧,有可能和系统或者硬件方面相关,可以进入bios(F10)检测硬盘和内存,备份数据,重装系统。 更多产品信息资讯及售后技术支持,欢迎登录hp网络在线聊天室www.hp.com.cn\/chat进一步咨询。

我的HP打印机只能打印Excel文件,CAD文件无法打印
CAD不出图、与你的打印机没有关系,打开CAD软件,在选项出图(打印)栏里重新设置一下就好了。

我的hp笔记本电脑为什么excel不能打印预览,但word就可以预览?
你在点击打印的时候它会提示你没有打印机,然后询问你是不是安装虚拟打印机。你按照提示操作就可以安装一个了。

hp5200打印机连接打印服务器打EXCEL只能打印一份
先连上其他打印机,看能不能正常打印,判断是打印机问题,还是EXCEL软件问题,打印机问题就再试试换一个驱动,不行就拿去修理,EXCEL问题就重装软件把

HP 1320激光打印机,在EXCEL中打无法用灰度打印文字
菜单“开始”→“打印机和传真”目录下,右击默认打印机,打开“打印首选项”→“纸张\/质量”框面“高级”项,查看其中细项“Levels Of Gray:”是不是为“Printer's Current Settting”。若不是,改为此选项。

excel 文件无法打印,因为在“HP LaserJet MFP M129-M134"在”上发生错...
你的这个情况应该是打印机驱动问题,估计是打印驱动程序不匹配。你要先删除已经安装的打印机,重启电脑后,用匹配的打印驱动程序重新安装,安装好了后再测试打印页,好的话应该可以了

hp laserjet m1005装好了为什么excel工作表打印不了
尊敬的用户,您好 不能打印,请您检查打印机屏幕的英文提示 1、在打印上打印配置页(菜单——reports——config report),打印出来说明机器目前成像系统没有问题 2、将机器连接电脑,打印驱动测试页(打印机属性——打印驱动测试页)如果可以打印出来,说明驱动目前正常,如果打印不出来,请检查设备管理器的...

独山县18774151301: php读取excel,excel下多个个工作表,该怎么读取 -
袁海清开: php读取excel,excel下多个个工作表的方法:1、利用PHPExcelReader来完成多个excel的读取.2、PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007...

独山县18774151301: php导入excel 怎么获取excel表格数据 -
袁海清开: 常用的用PHP读取EXCEL的方法有以下三种,各自有各自的优缺点.个人推荐用第三种方法,因为它可以跨平台使用. 1. 以.csv格式读取 将.xls转换成.csv的文本格式,然后再用PHP分析这个文件,和PHP分析文本没有什么区别. 优点:跨平台...

独山县18774151301: php中如何读取一个excel表格文件
袁海清开: 这个是较复杂的一套逻辑.不过要用到的不止你一个哦.有现成的例子如下. 首先要有一个类库,这里推荐一个phpExcel,操作excel很方便,尤其是可以方便的加入图片,支持jpg gif png格式. 下载地址: http://www.codeplex.com/PHPExcel ...

独山县18774151301: PHP远程读取excel文件,怎么读取 -
袁海清开: PHPExcel 通过 PHPExcel_Shared_OLERead 类的 read 方法读取文件 但 read 方法里使用了 is_readable 函数来确认文件是否存在,而 is_readable 不能作用于 url 所以不可直接远程读取 但若绕过 is_readable 函数的话,就是可以的public ...

独山县18774151301: php怎么读取excel 文件数据并输出 -
袁海清开: PHPExcel PHPExcel 是用来操作Office Excel 文档的一个PHP类库,它基于微软的OpenXML标准和PHP语言.可以使用它来读取、写入不同格式的电子表格,如 Excel (BIFF) .xls, Excel 2007 (OfficeOpenXML) .xlsx, CSV, Libre/OpenOffice Calc ....

独山县18774151301: 如何用php读取Exce表中的多个sheet -
袁海清开: :php读取excel,excel下多个个工作表的方法: 1、利用PHPExcelReader来完成多个excel的读龋 2、PHPExcel比较强大,能够将内存中的数据输出成Excel文件,同时还能够对Excel做各种操作,下面主要介绍下如何使用PHPExcel进行Excel 2007格式

独山县18774151301: 如何用PHPExcel读取超大excel文件 -
袁海清开: 工作中经常要遇到将xlsx文件中的部分内容导入到数据库.通常我们都是用PHPExcel来读取. 通过下面的方法我们可以很容易将一个excel表格读取成为php数组,之后就可以为所欲为了: $input_file = "data.xlsx"; $objPHPExcel = ...

独山县18774151301: phpexcel读取超大的EXCEL文件 -
袁海清开: set_time_limit(0);//设置不超时 @ini_set('memory_limit', '512M');//设置PHP能使用的内存大小PS:如果512M内存还不够,可以再设置更大点,直到满足你的程序

独山县18774151301: phpexcel 读取excel里的数据并在页面显示出来 -
袁海清开: public function excel(){ $list = M('map') -> select();//var_dump($list);die; foreach($list as $key => $val){ $uid[$key] = $val['uid']; } $uid = arr_to_str(array_unique($uid)); $user_info = json_decode(getUserInfoList($uid)); foreach($user_info as $key => $...

独山县18774151301: php读取excel并写入到数据库 -
袁海清开: 用 php Win32 OLE ##Using OLE; read('Book1.xls');// print number of rows, columns and sheets echo "Number of sheets: " . sizeof($excel->sheets) . "\n"; for ($x=0; $xsheets); $x++) { echo "Number of rows in sheet " . ($x+1) . ": " . $excel->...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网