Создать вложенный файл Excel из базы данных Mysql - PullRequest
0 голосов
/ 10 января 2020

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

-------------------------------------------------------
| **** |2020-01-01 |2020-01-02 |2020-01-03 |2020-01-04|
-------------------------------------------------------
|name1 | 11        | 12        |  13       | 14       |
-------------------------------------------------------
|name2 | 01        | 02        | 03        | 04       |
-------------------------------------------------------
|nameN | n         | n         | n         | n        |
-------------------------------------------------------

1 Ответ

0 голосов
/ 10 января 2020

Вам нужен PhpSpreadsheet !!
Вы можете выполнить весь процесс экспорта / импорта данных из mysql / excel.

Документация

Мини-пример после установки PHPSpreedsheet:

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as xlsx; // Instead PHPExcel_Writer_Excel2007
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing as drawing; // Instead PHPExcel_Worksheet_Drawing
use PhpOffice\PhpSpreadsheet\IOFactory as io_factory; // Instead PHPExcel_IOFactory

$objPHPExcel    =   new Spreadsheet();
$objPHPExcel->setActiveSheetIndex(0);
//NAME WORKSHEET
$objPHPExcel->getActiveSheet()->setTitle("NAME YOU WANT");
//SET MARGIN
$objPHPExcel->getActiveSheet()
->getPageMargins()->setTop(1.91);
$objPHPExcel->getActiveSheet()
->getPageMargins()->setRight(0.64);
$objPHPExcel->getActiveSheet()
->getPageMargins()->setLeft(0.64);
$objPHPExcel->getActiveSheet()
->getPageMargins()->setBottom(1.91);
$objPHPExcel->getActiveSheet()
->getPageMargins()->setHeader(0.76);
$objPHPExcel->getActiveSheet()
->getPageMargins()->setFooter(0.76);

//CELL VALUE 'Manually'
$objPHPExcel->getActiveSheet()->SetCellValue('A1', '****');
$objPHPExcel->getActiveSheet()->SetCellValue('B1', '2020-01-01');
$objPHPExcel->getActiveSheet()->SetCellValue('C1', '2020-01-02');
$objPHPExcel->getActiveSheet()->SetCellValue('D1', '2020-01-03');
$objPHPExcel->getActiveSheet()->SetCellValue('E1', '2020-01-04');

//CELL VALUE WITH DB
$rowCount   =   2; //SET START ROW
$query =$mysqli->query('SELECT * FROM  users'); //YOUR QUERY
while($row  =   $query ->fetch_assoc()){
$objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['name']);
$objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['value']);
$objPHPExcel->getActiveSheet()->SetCellValue('C'.$rowCount, $row['value2']);
$objPHPExcel->getActiveSheet()->SetCellValue('D'.$rowCount, $row['value3']);
$objPHPExcel->getActiveSheet()->SetCellValue('E'.$rowCount, $row['value4']);
$rowCount++;
}
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=nameoffile.xlsx");
header("Content-Transfer-Encoding: binary ");

ob_end_clean();
ob_start();
$objWriter->save('php://output');
exit;   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...