php 使用PHPEXcel导出表数据

使用PHPEXcel导出表数据

1. PHPEXcel简介

PHPEXcel是一个开源的PHP类库,它允许我们在程序中操作各种电子表格格式文件(如Excel、CSV等)的读取、写入和修改等操作。相比于其他类库,PHPEXcel更为简单易用,且性能较高。

2. 导出表数据步骤

下面,我们将演示通过PHPEXcel将数据库中表数据导出为Excel文件的实例。我们以主页(home)表为例进行演示。

2.1 准备工作

首先,需要在项目中引入PHPEXcel类库,可以通过composer安装,也可以手动下载。在这里我们使用composer安装。

在命令行中切到项目根目录下,运行以下命令:

composer require phpoffice/phpexcel

导出Excel需要预先设定Excel文件的格式。在本例中,我们将使用PHPExcel类库的PHPExcel_Worksheet和PHPExcel_Writer_Excel5类分别来设置Excel的表头格式和写入Excel文件。

2.2 获取主页表数据

在获取数据前,需要先连接数据库。同时,我们还需要根据实际需求,定义相应的SQL查询语句。本例中,我们需要导出home表中uid和username字段的数据,代码片段如下所示:

$query = "SELECT uid, username FROM home";

在查询数据时,我们需要使用PHP PDO(PHP Database Object)对象。以下是获取数据库连接和数据的代码片段:

$dsn = "mysql:host=localhost;dbname=test;";

$username = "root";

$password = "";

try {

$pdo = new PDO($dsn, $username, $password);

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$pdo->exec("SET NAMES 'utf8'");

} catch (PDOException $e) {

die('Connection failed: ' . $e->getMessage());

}

try {

$stmt = $pdo->prepare($query);

$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

} catch (PDOException $e) {

die('Query failed: ' . $e->getMessage());

}

2.3 设定Excel表头格式

在将数据写入Excel表格中之前,需要先设定表头格式。以下为示例代码片段:

$objPHPExcel = new PHPExcel();

$objPHPExcel->setActiveSheetIndex(0)

->setCellValue('A1', 'UID')

->setCellValue('B1', 'Username');

$objPHPExcel->getActiveSheet()

->getColumnDimension('A')

->setWidth(20);

$objPHPExcel->getActiveSheet()

->getColumnDimension('B')

->setWidth(20);

2.4 写入数据到Excel文件

写入Excel数据的代码片段如下所示:

$row_index = 2;

foreach ($results as $row) {

$objPHPExcel->getActiveSheet()

->setCellValueByColumnAndRow(0, $row_index, $row['uid'])

->setCellValueByColumnAndRow(1, $row_index, $row['username']);

$row_index++;

}

$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel);

$objWriter->save('home.xls');

最后将数据写入到保存Excel文件中,完成导出功能。

3. 总结

本文介绍了使用PHPEXcel导出表数据的步骤。首先介绍了PHPEXcel的概念,然后讲述了具体导出步骤。需要注意的是,在使用PHPEXcel时需要事先设定好Excel表格的格式,以便于后续操作。同时,在使用PHPEXcel写入Excel数据时,需要一行一行地写入数据,并将数据保存到PHPExcel对象中,最后再将其写入到文件中。

后端开发标签