maraya/cake-php-excel

CakePHP 使用 PHPExcel 库生成的 Excel 生成器

安装数: 3,414

依赖者: 0

建议者: 0

安全: 0

星标: 6

关注者: 1

分支: 3

开放问题: 0

类型:cakephp-plugin

v1.1.2 2015-02-23 18:08 UTC

This package is not auto-updated.

Last update: 2024-09-24 08:28:04 UTC


README

一个用于使用 CakePHP 生成 Excel 文件的插件。使用 CakePHP 视图文件生成,并使用 PHPExcel_IOFactory 类(来自 PHPExcel)。

要求

  • PHP 5.2.8
  • CakePHP 2.1+
  • PHPExcel
  • Composer

安装

将以下内容添加到您的 composer.json 文件中(maraya/cake-php-excel)

"require": {
	"maraya/cake-php-excel": "1.1.*"
},
"config": {
	"vendor-dir": "Vendor/"
},
"extra": {
    "installer-paths": {
        "Plugin/CakePHPExcel": ["maraya/cake-php-excel"]
    }
}

然后运行

composer update

用法

app/Config/bootstrap.php 中添加

CakePlugin::load('CakePHPExcel', 
	array(
		'routes' => true
	)
);

将 RequestHandler 组件添加到 AppController 中,并将 Excel 扩展映射到 CakePHPExcel 插件

'RequestHandler' => array(
	'viewClassMap' => array(
		'xls' => 'CakeExcel.Excel',
		'xlsx' => 'CakeExcel.Excel'
	)
),

创建 Layouts/xls/default.ctp(在此示例中字符集为 UTF-8)

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
	<?php echo $this->fetch('content'); ?>
</body>
</html>

将视图模板放在 xls 子目录中,例如:app/View/Reports/xls/clients.ctp

<h1>Title</h1>
<table width="100%" border="1">
	<tr>
		<td>col1</td>
		<td>col2</td>
		<td>col3</td>
	</tr>
	<tr>
		<td>val1</td>
		<td>val2</td>
		<td>val3</td>
	</tr>
</table>

然后在您的控制器中

class ReportsController extends AppController {
    public function clients() {
		$this->excelConfig =  array(
			'filename' => 'clients.xlsx'
		);
	}
}

调用 URL

http://example.com/reports/clients.xlsx

如果您想下载 Excel5 格式,请将 URL 扩展名从 xlsx 更改为 xls。

在您的视图文件中,您可以写入 HTML 代码。请参阅 PHPExcel 文档以获取有关如何使用 PHPExcel 的指南。