PHPExcel — как вставить изображения из базы данных mysql?

sergey-nv

Новичок
Есть база данных mysql с таблицей mto. Нужно средствами php получить из нее данные и вывести в файл xls. То есть, сделать экспорт. Использую для этого библиотеку phpexcel. Все столбики выводятся хорошо, все работает корректно. Но в таблице mto есть данные об изображениях для каждой строчки. То есть нужно взять информацию об изображениях из таблицы mto и на ее основе вставить изображения в файл xls. Как это сделать? Вставлять изображения нужно в столбец X, сразу после столбца W, начиная с седьмой строки. Файлы изображений лежат в папке '../admin/mto/files/'. В базе mysql в поле img1 прописаны только названия файлов изображений (с расширением), которые должны быть вставлены в таблицу xls ('Image1_2.jpg' и так далее).

Вот код:

Код:
require_once 'functions.php';
require_once 'Classes/PHPExcel.php';

$price_list = get_price();

$active_sheet->getColumnDimension('A')->setWidth(7);
$active_sheet->getColumnDimension('B')->setWidth(15);
$active_sheet->getColumnDimension('C')->setWidth(57);
$active_sheet->getColumnDimension('D')->setWidth(57);
$active_sheet->getColumnDimension('E')->setWidth(57);
$active_sheet->getColumnDimension('F')->setWidth(30);
$active_sheet->getColumnDimension('G')->setWidth(57);
$active_sheet->getColumnDimension('H')->setWidth(15);
$active_sheet->getColumnDimension('I')->setWidth(10);
$active_sheet->getColumnDimension('J')->setWidth(15);
$active_sheet->getColumnDimension('K')->setWidth(15);
$active_sheet->getColumnDimension('L')->setWidth(30);
$active_sheet->getColumnDimension('M')->setWidth(40);
$active_sheet->getColumnDimension('N')->setWidth(20);
$active_sheet->getColumnDimension('O')->setWidth(25);
$active_sheet->getColumnDimension('P')->setWidth(35);
$active_sheet->getColumnDimension('Q')->setWidth(25);
$active_sheet->getColumnDimension('R')->setWidth(25);
$active_sheet->getColumnDimension('S')->setWidth(30);
$active_sheet->getColumnDimension('T')->setWidth(35);
$active_sheet->getColumnDimension('U')->setWidth(35);
$active_sheet->getColumnDimension('V')->setWidth(35);
$active_sheet->getColumnDimension('W')->setWidth(35);
$active_sheet->getColumnDimension('X')->setWidth(35);

$active_sheet->setCellValue('A6','№п.п');
$active_sheet->setCellValue('B6','Аудитория');
$active_sheet->setCellValue('C6','Оборудование');
$active_sheet->setCellValue('D6','ПО');
$active_sheet->setCellValue('E6','Адрес');
$active_sheet->setCellValue('F6','Собственность');
$active_sheet->setCellValue('G6','Документ');
$active_sheet->setCellValue('H6','Площадь');
$active_sheet->setCellValue('I6','Места');
$active_sheet->setCellValue('J6','Примечание');
$active_sheet->setCellValue('K6','Корпус');
$active_sheet->setCellValue('L6','Лекционная аудитория');
$active_sheet->setCellValue('M6','Демонстрационное оборудование');
$active_sheet->setCellValue('N6','Учебные пособия');
$active_sheet->setCellValue('O6','Лаборатория');
$active_sheet->setCellValue('P6','Лабораторное оборудование');
$active_sheet->setCellValue('Q6','Помещение для СР');
$active_sheet->setCellValue('R6','Комп. техника');
$active_sheet->setCellValue('S6','Доступ в Интернет');
$active_sheet->setCellValue('T6','Помещение для оборудования');
$active_sheet->setCellValue('U6','Аудитория для инвалидов');
$active_sheet->setCellValue('V6','Оборудование для инвалидов');
$active_sheet->setCellValue('W6','Мебель для инвалидов');
$active_sheet->setCellValue('X6','Картинка');

$row_start = 7;
$i = 0;
foreach($price_list as $item) {

    $active_sheet->getRowDimension($i+7)->setRowHeight(500);   

    $row_next = $row_start + $i;

    $active_sheet->setCellValue('A'.$row_next,$item['id_mto']);
    $active_sheet->setCellValue('B'.$row_next,$item['audience_number']);
    $active_sheet->setCellValue('C'.$row_next,$item['purpose_equipment']);
    $active_sheet->setCellValue('D'.$row_next,$item['list_software']);
    $active_sheet->setCellValue('E'.$row_next,$item['address']);
    $active_sheet->setCellValue('F'.$row_next,$item['operational_management']);
    $active_sheet->setCellValue('G'.$row_next,$item['document']);
    $active_sheet->setCellValue('H'.$row_next,$item['square']);
    $active_sheet->setCellValue('I'.$row_next,$item['places']);
    $active_sheet->setCellValue('J'.$row_next,$item['note']);
    $active_sheet->setCellValue('K'.$row_next,$item['housing']);
    $active_sheet->setCellValue('L'.$row_next,$item['lecture_audience']);
    $active_sheet->setCellValue('M'.$row_next,$item['demonstration_equipment']);
    $active_sheet->setCellValue('N'.$row_next,$item['visual_aids']);
    $active_sheet->setCellValue('O'.$row_next,$item['laboratory']);
    $active_sheet->setCellValue('P'.$row_next,$item['laboratory_equipment']);
    $active_sheet->setCellValue('Q'.$row_next,$item['independent_work']);
    $active_sheet->setCellValue('R'.$row_next,$item['computer_technology']);
    $active_sheet->setCellValue('S'.$row_next,$item['internet_access']);
    $active_sheet->setCellValue('T'.$row_next,$item['equipment_storage']);
    $active_sheet->setCellValue('U'.$row_next,$item['disabled_classes']);
    $active_sheet->setCellValue('V'.$row_next,$item['disabled_equipment']);
    $active_sheet->setCellValue('W'.$row_next,$item['disabled_furniture']);

    $i++;

}
Вот functions.php:

Код:
<?php

require_once 'connection.php';

function get_price() {
    global $link;
    $query = "SELECT id_mto, audience_number, purpose_equipment, list_software, address, operational_management, document, square, places, note, housing, lecture_audience, demonstration_equipment, visual_aids, laboratory, laboratory_equipment, independent_work, computer_technology, internet_access, equipment_storage, disabled_classes, disabled_equipment, disabled_furniture FROM mto";
    $result = mysqli_query($link, $query);
    
    if(!$result) {
        exit(mysqli_error());
    }
    
    $row = array();

    $rows = mysqli_num_rows($result); // количество полученных строк
    
    for($i = 0 ; $i < $rows ; $i++) {
        $row[] = mysqli_fetch_assoc($result);
    }
    
    return $row;       
}
?>
 
Сверху