您的位置:首页 > 编程语言 > PHP开发

ThinkPHP框架下读取excel数据的方法示例

2016-08-31 16:33 766 查看
在ThinkPHP框架下,读取excel数据的方法示例:

在操作前,应该在系统框架的扩展目录中添加ORG库,即要包含\ThinkPHP\Extend\Library\ORG\Excel\Spreadsheet_Excel_Reader.class.php文件及其相关支持文件。

<?php
header("Content-type: text/html; charset=utf-8");
class MesTestAction extends Action {
//读取excel
public function testReadExcel(){
$filename = $_FILES['filexls']['tmp_name'];
if ( empty($filename) ) {
$this->error('上传文件不能为空');
error_reporting(6135);
} else {
echo '文件临时名称: '.$filename.'<br/>';
}

import("ORG.Excel.Spreadsheet_Excel_Reader");
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('utf-8');
$data->read($filename);
$sheetNum = count($data->sheets);
if ( ! $sheetNum ) {//sheet页数为0
$this->error('文件内容不能为空!');
} else {
echo 'sheet总页数: '.$sheetNum.'<br/>';
}

for ( $j = 0; $j < $sheetNum; ++$j) {
echo '第'.($j + 1).'页,'; //var_dump($data->sheets[$j]);die('as');
$arrsrc = $data->sheets[$j]['cells'];
array_shift($arrsrc); //去除excel第一行标头
$counts = count($arrsrc);   //总条数
if ($counts == 0) {
echo '无有效数据'.'<br/>';
}else{
echo '行数'.$counts.'<br/>';
foreach ($arrsrc as $keyRow => $valueRow) {
if ( is_array($valueRow) ) {
foreach ($valueRow as $keyCol => $valueCol) {
echo $valueCol.'    ';
}
echo '<br/>';
} else {
echo $valueRow.'<br/>';
}
}
}
}
}
}
?>


测试时使用的html页面代码为:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>测试excel解析</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="renderer" content="webkit" />
</head>
<body>
<!-- content -->
<div class="wbBox" style="background:#fff">
<form method="post" action="/WebDocument/App/Message/index.php/MesTest/testReadExcel" enctype="multipart/form-data" >
<input type="file" name="filexls" id="file11" onchange="document.getElementById('filename').value=this.value;" style=" padding:0; "/>
<input id="filename" type="text" />
<label for="file11" id="upshow" type="button" />浏览 </label>
</form>
</body>
</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php excel thinkphp