PHP导出excel

最近做一个项目,其中涉及到了数据导成excel的功能。

后来使用了 开源的 PHPExcel  http://phpexcel.codeplex.com/ 目前最新版是1.7.6

PHPExcel 可以生成 .xls 和 .xlsx (office2007)。其封装的方法很全了。

比如设置 excel的title,keywords,description

获得某个sheet,某个列的数据 等等。

具体的文档,查看这里,http://phpexcel.codeplex.com/releases/view/45412 非常详细。

下面是一段简单的示例。

//这里要 include进来 phpexcel类
include ROOT_PATH . 'library/PHPExcel-1.7.6/PHPExcel.PHP';
include ROOT_PATH . 'library/PHPExcel-1.7.6/PHPExcel/Writer/Excel2007.PHP';

class MyExcel {

    public static function makeExcel($title, $data, $excle_name) {
        $exclefile = 'excel/' . date('Y-m-d') . '/' . md5($excle_name) . '.xlsx';

        $Excel = new PHPExcel();
        $Excel->setActiveSheetIndex(0);
        $Excel->getSheet()->setTitle($title);

        $cell_one = $data[0];
        $j = 0;
        foreach ($cell_one as $k => $v) {
            $Excel->getSheet()->setCellValue(self::getCharByNunber($j) . '1', $k);
            $j++;
        }

        $x = 2;
        foreach ($data as $value) {
            $y = 0;
            foreach ($value as $k => $v) {
                $Excel->getSheet()->setCellValue(self::getCharByNunber($y) . $x, $v);
                $y++;
            }
            $x++;
        }

        $objwriter = new PHPExcel_Writer_Excel2007($Excel);
        $objwriter->save($exclefile);
        TMDebugUtils::debugLog('make ' . $exclefile);
        return $exclefile;
    }

    protected static function getCharByNunber($num) {
        $num = intval($num);
        $arr = array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',);
        return $arr[$num];
    }

}

//导出用户基本信息
function exportUserBaseInfo() {
    $excelTitle = '用户基本信息';
    $excelFileName = 'userbase';
    $data = array();
    // $rs = ....  这里rs是从db读取的数据
    for ($i = 0; $i < count($rs); $i++) {         $data[$i]['姓名'] = $rs[$i]->name;
        $data[$i]['年龄'] = intval($rs[$i]->age);
        $data[$i]['日期'] = $rs[$i]->date;
    }
    MyExcel::makeExcel($excelTitle, $data, $excelFileName);
}

//导出新闻资讯信息
function exportUserBaseInfo() {
    $excelTitle = '新闻资讯信息';
    $excelFileName = 'news';
    $data = array();
    // $rs = ....  这里rs是从db读取的数据
    for ($i = 0; $i < count($rs); $i++) {         $data[$i]['标题'] = $rs[$i]->title;
        $data[$i]['作者'] = $rs[$i]->author;
        $data[$i]['日期'] = $rs[$i]->date;
        $data[$i]['浏览数'] = floatval($rs[$i]->view_count);
        $data[$i]['被评论数'] = floatval($rs[$i]->comment_count);
    }
    MyExcel::makeExcel($excelTitle, $data, $excelFileName);
}

//end

这里只是简单的生成的xlsx,其他需要读取更复杂的,可以阅读官方的手册,有很详细的说明。

如果不需要保存,直接输出到浏览,如下:

//不用保存,直接输出到浏览器
$objwriter = new PHPExcel_Writer_Excel2007($Excel);
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        header('Content-Disposition:inline;filename=temp.xlsx');
        header("Content-Transfer-Encoding: binary");
        header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
        header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        $objwriter->save('php://output');

The End


PHP导出Excel文件可以通过多种方法实现,其中最常用的方法是使用PHPExcel库或PhpSpreadsheet库。以下是使用PhpSpreadsheet库导出Excel文件的步骤: 1. **安装PhpSpreadsheet库**: 首先,你需要通过Composer安装PhpSpreadsheet库。如果还没有安装Composer,可以先从[Composer官网](https://getcomposer.org/)下载并安装。 ```bash composer require phpoffice/phpspreadsheet ``` 2. **编写导出Excel的代码**: 创建一个PHP文件,例如`export_excel.php`,并编写以下代码: ```php <?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; // 创建一个新的Spreadsheet对象 $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // 设置单元格的值 $sheet->setCellValue('A1', '姓名'); $sheet->setCellValue('B1', '年龄'); $sheet->setCellValue('A2', '张三'); $sheet->setCellValue('B2', '25'); $sheet->setCellValue('A3', '李四'); $sheet->setCellValue('B3', '30'); // 设置文件名称 $filename = 'export.xlsx'; // 创建Writer对象 $writer = new Xlsx($spreadsheet); // 将文件保存到服务器 $writer->save($filename); // 输出文件到浏览器 header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Cache-Control: max-age=0'); $writer->save('php://output'); exit; ?> ``` 3. **运行代码**: 在浏览器中访问`export_excel.php`文件,浏览器会提示下载生成Excel文件。 通过以上步骤,你可以轻松地在PHP导出Excel文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值