ThinkPHP5使用PHPExcel导出excel数据表(显示图片,附带解析)
在ThinkPHP5中使用PHPExcel导出包含图片的Excel表格,可以通过以下步骤实现:
安装PHPExcel库,可以使用Composer进行安装:
composer require phpoffice/phpexcel
- 在控制器中编写导出方法,使用PHPExcel创建Excel,并插入图片。
以下是一个简单的示例代码:
use PHPExcel_IOFactory;
use PHPExcel;
class ExcelController extends Controller {
public function exportWithImage() {
// 创建PHPExcel对象
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$sheet = $objPHPExcel->getActiveSheet();
// 设置单元格数据
$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B1', 'World');
// 插入图片
$drawing = new PHPExcel_Worksheet_Drawing();
$drawing->setName('Logo');
$drawing->setPath('path/to/your/image.jpg'); // 图片路径
$drawing->setCoordinates('A2'); // 图片要插入的位置
$drawing->setWorksheet($sheet);
// 设置Excel头部标题
$objPHPExcel->getActiveSheet()->setTitle('My Excel Sheet');
// 设置Excel文件的属性
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
// 保存Excel文件到服务器的一个临时路径
$temp_file = tempnam(sys_get_temp_dir(), 'PHPExcel');
$objWriter->save($temp_file);
// 设置相应的Header
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="MyExcel.xlsx"'); // 文件名
header('Cache-Control: max-age=0');
// 读取文件并直接输出到浏览器
readfile($temp_file);
// 删除服务器上的临时文件
unlink($temp_file);
exit();
}
}
请确保你的图片路径是正确的,并且服务器有足够的权限去读取和写入临时文件。这段代码会创建一个包含文本和图片的Excel表格,并提示用户下载。
评论已关闭