xlsxwriter/excel

将数据转换为Excel文件

dev-xlsxwriter 2023-12-16 21:02 UTC

This package is auto-updated.

Last update: 2024-09-16 22:32:05 UTC


README

概览

XLSXWriter是一个PHP/Laravel库,允许您轻松地将数据转换为Excel文件。它提供了一种简单便捷的方式来生成具有可自定义功能(如边框、字体样式和列宽)的Excel文件。

安装

要使用XLSXWriter,您可以通过Composer安装它

    composer require franco28dev/xlsxwriter

用法

设置Excel文件属性

    $writer->setTitle($title);
    $writer->setSubject($subject);
    $writer->setAuthor($author);
    $writer->setCompany($company);
    $writer->setKeywords($keywords);
    $writer->setDescription($description);
    $writer->setTempDir($tempdir);
    $writer->setRightToLeft($isRightToLeft);

写入文件

    $writer->writeToFile($filename);

写入工作表标题

    $writer->writeSheetHeader($sheetName, $headerTypes, $columnOptions);

写入工作表行

    $writer->writeSheetRow($sheetName, $row, $rowOptions);

标记合并单元格

    $writer->markMergedCell($sheet_name, $start_cell_row, $start_cell_column, $end_cell_row, $end_cell_column);

写入整个工作表

    $writer->writeSheet($data, $sheet_name, $header_types);

示例

public function GenerateDataToExcel()
{
    // Start Buffer
    ob_start();

    // Add the first array to scope everything, the second array as header, third array as values for the row
    $dataCajaDiaria = [
        ['Date', 'Total Month Of July'],
        [
            date('Y-m-d H:i:s'),
            '$150',
        ],
    ];

    // Initialize the class
    $writer = new XLSXWriter();

    // Set the Author description for the excel file
    $writer->setAuthor('Franco28 Dev');

    // Set the title tab
    $writer->writeSheet("July sales");

    // The filename
    $filename = 'july_sales.xlsx';

    // Write the file
    $writer->writeToFile($filename);

    // Clean Buffer for the download
    ob_get_clean();

    // If you want you can check if the file was created or not
    if (file_exists($filename)) {

        // Generate the headers for the download,
        // after the download the file will be deleted
        header('Content-Description: File Transfer');
        header("Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        header('Content-Disposition: attachment; filename="' . basename($filename) . '"');
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($filename));
        readfile($filename);
        unlink($filename);
    }

    // Return the code to whatever you want
    return view("sales.month");
}