<MyRusakov.ru />

Программирование на C++ с Нуля до Гуру

Программирование на C++ с Нуля до Гуру

Данный курс научит Вас программировать на языке C++, который, несмотря на свой почтенный возраст, необычайно сильно востребован. Курс состоит из 6 разделов, посмотрев которые и выполнив все упражнения, Вы с нуля освоите этот язык и сможете создавать самые разные проекты любой сложности на C++.

Для закрепления материала из уроков к ним идёт множество упражнений.

Дополнительно к курсу идёт вспомогательная система, которая не даст Вам забросить начатое на полпути.

Также вместе с курсов Вы получаете Бонус "Программирование на C++ в Unreal Engine", в котором Вы научитесь создавать игры на C++ с использованием этого движка.

Подробнее
Подписка

Подпишитесь на мой канал на YouTube, где я регулярно публикую новые видео.

YouTube Подписаться

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Зачем Вы изучаете программирование/создание сайтов?

Динамическая загрузка Excel-файла, созданного с помощью PHPSpreadsheets

Динамическая загрузка Excel-файла, созданного с помощью PHPSpreadsheets

При заполнении различных отчетов на сайтах, часто появляется необходимость позволить пользователям загружать на свой ПК сформированный отчет в формате Excel.

В одной из прошлых статей мы обсуждали как создать файл Excel, используя библиотеку PHPSpreadsheet, а в этой я покажу, как при нажатии на ссылку сформировать Excel-файл и отправить его на загрузку в браузер пользователя.

Итак, для начала установим саму библиотеку PHPSpreadsheet:


$ composer require phpoffice/phpspreadsheet

Затем создадим файл script.php со следующим содержимым:


<?php


require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

const REPORT_FILE_NAME = "отчет_по_закупкам.xlsx";

if (isset($_GET['report'])) {
    // (1) создаем новую книгу
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();


    // (2) здесь генерируется отчет
    $sheet->setCellValue('A1', 'Отчет сформирован');

    // (3) а здесь заголовки отправляются в браузер
    $writer = new Xlsx($spreadsheet);
    header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); // формат файла
    header('Content-Disposition: attachment;filename="' . REPORT_FILE_NAME .'"'); // название файла при загрзуке
    header('Cache-Control: max-age=0');
    header('Expires: Fri, 12 Nov 2012 12:11:22 GMT');
    header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
    header('Cache-Control: cache, must-revalidate');
    header('Pragma: public');
    $writer->save('php://output'); // отправляем в браузер;
}



?>
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <a href="?report=<?php print(REPORT_FILE_NAME); ?>">Скачать</a>
</body>

</html>

Запустим пример на локальном сервере:


$ php -S localhost:9999 script.php

При нажатии на ссылку, PHP-скрипт динамически формирует Excel-таблицу и отправляет ее на загрузку в браузер. Пользователю лишь остается открыть файл.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (2):

romas_s romas_s 17.06.2021 10:31:27

Спасибо за статью. А есть ли вариант онлайн эксель документ редактировать как аналог гугл таблиц?.

Ответить

Castels Castels 27.06.2021 21:03:58

Здравствуйте. Для этого надо распарсить и загрузить Excel в окно браузера. Редактирование будет осуществляться средствами JavaScript, полученный результат отправлять на сервер, к примеру, для сохранения и последующей загрузки пользователем

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.