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

8 篇文章 0 订阅
6 篇文章 0 订阅

在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" οnchange="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>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值