Dynami c Поле Excel Выход PHP - PullRequest
       4

Dynami c Поле Excel Выход PHP

0 голосов
/ 22 апреля 2020

Скажем, у меня есть эта таблица в базе данных SQL:

+---------------+-----------------+-----------------+
| category      | name            | month           |
+---------------+-----------------+-----------------+
| Fruit         | Mango           |January          |
| Fruit         | Apple           |January          |
| Fruit         | Grape           |February         |
| Vegetable     | Tommato         |February         |
| Vegetable     | Cuccumber       |March            |
| Animal        | Chicken         |March            |
+---------------+-----------------+-----------------+

, тогда я хотел бы динамически выводить файл Excel с использованием PHPExcel, что-то вроде этого:

Table Looks 1:

поэтому, поскольку он динамический c, при каждом обновлении базы данных вывод Excel будет следующим: Обновление SqlTable:

+---------------+-----------------+-----------------+
| category      | name            | month           |
+---------------+-----------------+-----------------+
| Fruit         | Mango           |January          |
| Fruit         | Apple           |January          |
| Fruit         | Grape           |February         |
| Vegetable     | Tommato         |February         |
| Vegetable     | Cuccumber       |March            |
| Animal        | Chicken         |March            |
| Vegetable     | Onion           |April            |
| Animal        | Fish            |April            |
+---------------+-----------------+-----------------+

Expected Excel Output after update :

Возможно ли это сделать с помощью phpExcel?

что я пробовал:

public function excel()
    {
        $spreadsheet = new Spreadsheet();

        $month = $this->db
            ->select('month')
            ->distinct('category,name')
            ->order_by('category,name')
            ->get('mytable')->result_array();
        $data = $this->db
            ->select('category,name')
            ->order_by('category,name')
            ->get('mytable')->result_array();
        $col_data = 'b';
        $row_category = 1;
        $row_name = 2;
        foreach ($data as $d) {                     
            $sheet = $spreadsheet->getActiveSheet();
            $sheet->setCellValue($col_data.$row_category, $d['category']);
            $sheet->setCellValue($col_data.$row_name, $d['name']);
            $col_data++;
        }

        $col_month = 'a';
        $row_month = 3;
        foreach ($month as $m) {
            $sheet = $spreadsheet->getActiveSheet();
            $sheet->setCellValue($col_month.$row_month, $m['month']);
            $row_month++;
        }       

        $writer = new Xlsx($spreadsheet);
        $writer->save('hello world.xlsx');
    }

Результат был такой:

empty numbers and i can't figure it out how to merge the column field

Пожалуйста, дайте мне знать, как это сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...