乔山办公网我们一直在努力
您的位置:乔山办公网 > office365 > <em>php</em>读取excel,excel下多个个工作表,该怎么读取-php offic

<em>php</em>读取excel,excel下多个个工作表,该怎么读取-php offic

作者:乔山办公网日期:

返回目录:office365


//被调用的文件如果不存在会报错,脚本中断。
//被调用文件在当前脚本中可重复执行。
require(文件路径);

/*========================*/

//被调用的文件如果不存在会报错,脚本zhidao中断。
//被调用文件在当前脚本中仅执行一次。
require_once(文件路径);

/*========================*/
//被调用的文件如果不存在不会报错,脚本继续。
//被调用文件在当前脚本中可重复执行。
include(文件路径);

/*========================*/

//被调用的文件如果不存在不会报错,脚本继续。
//被调用文件在当前脚本中仅执行一次。
include_once(文件路径);

这4个函数均可引用PHP文件。

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变量就能够看到文件中的内容了e79fa5e98193e78988e69d83332
1、首先我们做一个简单的xml文件
<?xml version="1.0 encoding="UTF-8"?><humans><zhangying><name>张映</name><sex>男</sex><old>28</old></zhangying><tank><name>tank</name><sex>男</sex><old>28</old></tank></humans>
2、
php读取xml的几种方法:
1)DOMDocument读取xml
<?php $doc = new DOMDocument(); $doc->load('person.xml'); //读取xml文件 $humans = $doc->getElementsByTagName( "humans" ); //取得humans标签的对象数组 foreach( $humans as $human ) { $names = $human->getElementsByTagName( "name" ); //取得name的标签的对象数组 $name = $names->item(0)->nodeValue; //取得node中的值,如<name> </name> $sexs = $human->getElementsByTagName( "sex" ); $sex = $sexs->item(0)->nodeValue; $olds = $human->getElementsByTagName( "old" ); $old = $olds->item(0)->nodeValue; echo "$name - $sex - $old\n"; } ?>
2)simplexml读取xml
<?php $xml_array=simplexml_load_file('person.xml'); //将XML中的数据,读取到数组对象中 foreach($xml_array as $tmp){ echo $tmp->name."-".$tmp->sex."-".$tmp->old.""; } ?>
3)用php正则表达式来记取数e799bee5baa6e997aee7ad94e78988e69d83361
<?php $xml = ""; $f = fopen('person.xml', 'r'); while( $data = fread( $f, 4096 ) ) { $xml .= $data; } fclose( $f ); // 上面读取数据 preg_match_all( "/\<humans\>(.*?)\<\/humans\>/s", $xml, $humans ); //匹配最外层标签里面的内容 foreach( $humans[1] as $k=>$human ) { preg_match_all( "/\<name\>(.*?)\<\/name\>/", $human, $name ); //匹配出名字 preg_match_all( "/\<sex\>(.*?)\<\/sex\>/", $human, $sex ); //匹配出性别 preg_match_all( "/\<old\>(.*?)\<\/old\>/", $human, $old ); //匹配出年龄 } foreach($name[1] as $key=>$val){ echo $val." - ".$sex[$key][1]." - ".$old[$key][1]."" ; } ?>
4)xmlreader来读取xml数据
<?php $reader = new XMLReader(); $reader->open('person.xml'); //读取xml数据 $i=1; while ($reader->read()) { //是否读取 if ($reader->nodeType == XMLReader::TEXT) { //判断node类型 if($i%3){ echo $reader->value; //取得node的值 }else{ echo $reader->value."" ; } $i++; } } ?>

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) //一行数636f7079e799bee5baa6e79fa5e98193336
{
$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']);

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网