使用phpspreadsheet库将数据从数组写入表单

Gur*_*aur 3 php excel phpspreadsheet

如何使用phpspreadsheet库从数组创建Excel工作表列标题?

下面是我正在尝试的代码,但它不起作用:

    // $header is an array containing column headers
    $header = array("Customer Number", "Customer Name", "Address", "City", "State", "Zip");
    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->fromArray($header, NULL, 'A1');     

    // redirect output to client browser
    header('Content-Type: application/vnd.ms-excel');
    header('Content-Disposition: attachment;filename="myfile.xlsx"');
    header('Cache-Control: max-age=0');

    $writer = new Xlsx($spreadsheet);
    $writer->save('php://output');
Run Code Online (Sandbox Code Playgroud)

小智 9

你需要写

$ sheet-> fromArray([$ header],NULL,'A1');


xay*_*yer 6

另外,您的 Content-Type 标头错误...


对于 BIFF .xls 文件

application/vnd.ms-excel
Run Code Online (Sandbox Code Playgroud)

对于Excel2007及以上版本的.xlsx文件

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Run Code Online (Sandbox Code Playgroud)

因此,完整工作的代码应该如下所示:

    // $header is an array containing column headers
    $header = [array("Customer Number", "Customer Name", "Address", "City", "State", "Zip")];

    $spreadsheet = new Spreadsheet();
    $sheet = $spreadsheet->getActiveSheet();
    $sheet->fromArray($header, NULL, 'A1');     

    // redirect output to client browser
    header('Content-Disposition: attachment;filename="myfile.xlsx"');
    header('Cache-Control: max-age=0');

    $writer = new Xlsx($spreadsheet);
    $writer->save('php://output');
Run Code Online (Sandbox Code Playgroud)