zoukankan      html  css  js  c++  java
  • 分享给大家一个简单的数据导出excel类

    <?php
    /**
     * 生成excel文件操作
     *
     * @author wesley wu
     * @date 2013.12.9
     */
    class Excel
    {
         
        private $limit = 10000;
         
        public function download($data, $fileName)
        {
            $fileName = $this->_charset($fileName);
            header("Content-Type: application/vnd.ms-excel; charset=gbk");
            header("Content-Disposition: inline; filename="" . $fileName . ".xls"");
            echo "<?xml version="1.0" encoding="gbk"?>
    
                <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
                xmlns:x="urn:schemas-microsoft-com:office:excel"
                xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
                xmlns:html="http://www.w3.org/TR/REC-html40">";
            echo "
    <Worksheet ss:Name="" . $fileName . "">
    <Table>
    ";
            $guard = 0;
            foreach($data as $v)
            {
                $guard++;
                if($guard==$this->limit)
                {
                    ob_flush();
                    flush();
                    $guard = 0;
                }
                echo $this->_addRow($this->_charset($v));
            }
            echo "</Table>
    </Worksheet>
    </Workbook>";
        }
         
        private function _addRow($row)
        {
            $cells = "";
            foreach ($row as $k => $v)
            {
                $cells .= "<Cell><Data ss:Type="String">" . $v . "</Data></Cell>
    ";
            }
            return "<Row>
    " . $cells . "</Row>
    ";
        }
         
        private function _charset($data)
        {
            if(!$data)
            {
                return false;
            }
            if(is_array($data))
            {
                foreach($data as $k=>$v)
                {
                    $data[$k] = $this->_charset($v);
                }
                return $data;
            }
            return iconv('utf-8', 'gbk', $data);
        }
         
    }
    

    //使用方法

    $excel = new Excel();
    
    $data = array(
        array('姓名','标题','文章','价格','数据5','数据6','数据7'),
        array('数据1','数据2','数据3','数据4','数据5','数据6','数据7'),
        array('数据1','数据2','数据3','数据4','数据5','数据6','数据7'),
        array('数据1','数据2','数据3','数据4','数据5','数据6','数据7'),
        array('数据1','数据2','数据3','数据4','数据5','数据6','数据7'),
        array('数据1','数据2','数据3','数据4','数据5','数据6','数据7')
    );
    
    $excel->download($data, '这是一个测试');
    
    ?>
    
  • 相关阅读:
    加分二叉树
    飞扬的小鸟
    洛谷P2066 机器分配
    解方程
    洛谷P1781 宇宙总统
    洛谷P1311 选择客栈
    洛谷P1081 开车旅行70分
    CSS清除浮动
    常见的内联元素与块状元素
    标签的权值问题(优先级)
  • 原文地址:https://www.cnblogs.com/yzycoder/p/4741149.html
Copyright © 2011-2022 走看看