2022年10月21日 星期五

清量級的 XLSX 工具 (PHP版本)

PHP_XLSXWriter 

第二連結 : 避免最後倉庫丟失

        include BASE_PATH . "XlsxWriter.php";
        $headerRow = [];
        $file = $filename;

        $file = str_replace('.xls', '.xlsx', $file);

        # 要使用方案2
        $path =  '../api/data/resources/xlsx/';
        if (!file_exists($path)) {
            mkdir($path, 0777, true);
            $path = $path . $filename;
        } else {
            $path = $path . $filename;
        }

        $writer = new \XLSXWriter();
        # 風格一
        $styles1 = array(
            'font' => 'Arial',
            'font-size' => 12,
            'border' => 'left,top,bottom'
        ); 
        # 配置標題      
        foreach ($data[0] as $key => $value) {
            $headerRow[$value] = '@';
        }
        unset($data[0]);
        $writer->writeSheetHeader('Sheet1', $headerRow, [
            'halign' => 'center',
            'font-size' => 14,
            'border' => 'left,top,bottom',
            'widths' => [40, 20, 20, 25, 25],
        ]);
        foreach ($data as  $key1 => $row) {
            $writer->writeSheetRow('Sheet1', $row, $styles1);
        }
        # 方案一
        header('content-disposition:attachment;filename=' . $file);    //告訴瀏覽器通過何種方式處理檔案
        $writer->writeToStdOut();
        exit;
        # 方案二
        # 這個是 先產實體文件 , 再刪除
        // $writer->writeToFile($path);
        // header('content-disposition:attachment;filename=' . $file);    //告訴瀏覽器通過何種方式處理檔案
        // header('content-length:' . filesize($path));    //下載檔案的大小
        // readfile($path);
        // unlink($path);
        // exit;

沒有留言:

拯救老電腦

 Sempron 3850 Socket AM1入門四核處理器 2014 8ram  作業系統 windows 10 1904 評論: 八年的核心,其他的故障電腦拆解零組件都是拼裝. 整體使用上,可以基本文書,瀏覽網站,聽音樂等等都可以接受的。 下次再來繼續搞更多..