使用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对象中,最后再将其写入到文件中。