关闭

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

标签: phpexcelthinkphp
1670人阅读 评论(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" 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>



0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:145864次
    • 积分:2316
    • 等级:
    • 排名:第16736名
    • 原创:93篇
    • 转载:69篇
    • 译文:0篇
    • 评论:6条
    最新评论