<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                img > **Excel你的瓶頸不再是PHP** ## 概述 xlswriter 是一個高性能 PHP C 擴展,可用于讀取、寫入 Excel 2007+ xlsx 文件,適用于 Linux,FreeBSD,OpenBSD,OS X,Windows。 ## 為什么使用xlswriter 請參考下方對比圖;由于內存原因,PHPExcel數據量相對較大的情況下無法正常工作,雖然可以通過修改`memory_limit`配置來解決內存問題,但完成工作的時間可能會更長 ![](https://img.kancloud.cn/73/3f/733f6671cfce3a6f9b9eee522cd2bec3_957x433.png) xlswriter是一個 PHP C 擴展,可用于在 Excel 2007+ XLSX 文件中讀取數據,插入多個工作表,寫入文本、數字、公式、日期、圖表、圖片和超鏈接。 ## 特性 ### 寫入 * 100%兼容的Excel XLSX文件 * 完整的Excel格式 * 合并單元格 * 定義工作表名稱 * 過濾器 * 圖表 * 數據驗證和下拉列表 * 工作表PNG/JPEG圖像 * 用于寫入大文件的內存優化模式 * 適用于Linux,FreeBSD,OpenBSD,OS X,Windows * 編譯為32位和64位 * FreeBSD許可證 * 唯一的依賴是zlib ### 讀取 * 完整讀取數據 * 光標讀取數據 * 按數據類型讀取 * ## 基準測試 測試環境 ``` Macbook Pro 13 inch, Intel Core i5, 16GB 2133MHz LPDDR3 Memory, 128GB SSD Storage ``` #### 導出 > 兩種內存模式導出100萬行數據(單行27列,數據類型均為字符串,單個字符串長度為19) * 普通默認模式:耗時 29S,內存只需 2083MB * 內存優化模式:耗時 52S,內存僅需 <1MB ##### 導入 > 100萬行數據(單行1列,數據類型為INT) * 全量模式:耗時 3S,內存僅 558MB * 游標模式:耗時 2.8S,內存僅 <1MB ## 安裝 這里使用PECL安裝(推薦) ``` $ pecl install xlswriter ``` 錯誤提示 ``` No releases available for package "pecl.php.net/xlswriter" install failed ``` > 以上錯誤提示,請使用`root`權限執行安裝,即`sudo pecl install xlswriter` ![](https://img.kancloud.cn/cf/02/cf02b3324a1ebd46f7e6c7d4a6d05941_1458x439.png) 添加 `extension = xlswriter.so` 到 `php.ini` 配置 ### IDE 助手 ``` composer require viest/php-ext-xlswriter-ide-helper:dev-master ``` ## 使用 ### 導出文件 > 注:如果路徑下有相同命名的文件,新文件會覆蓋老文件 ``` <?php /** * @desc 導出文件 * @author Tinywan(ShaoBo Wan) * @date 2024/8/7 20:20 */ declare(strict_types=1); $config = [ 'path' => '/home/www/build' // xlsx文件保存路徑 ]; $excel = new \Vtiful\Kernel\Excel($config); // fileName 會自動創建一個工作表,你可以自定義該工作表名稱,工作表名稱為可選參數 $filePath = $excel->fileName('tutorial01.xlsx', 'sheet1') ->header(['Item', 'Cost']) ->data([ ['Rent', 1000], ['Gas', 100], ['Food', 300], ['Gym', 50], ])->output(); var_dump($filePath); ``` 執行輸出 ``` string(31) "/home/www/build/tutorial01.xlsx" ``` 導出結果 ![](https://img.kancloud.cn/00/58/00580b5e1a71bdfc94cf385132d3540b_810x390.png) ### 讀取文件 ``` <?php /** * @desc 讀取文件 * @author Tinywan(ShaoBo Wan) * @date 2024/8/7 20:29 */ declare(strict_types=1); $config = [ 'path' => '/home/www/build' // xlsx文件讀取路徑 ]; $excel = new \Vtiful\Kernel\Excel($config); // 讀取測試文件 $data = $excel->openFile('tutorial01.xlsx') ->openSheet() ->getSheetData(); var_dump($data); ``` 讀取文件輸出 ``` array(5) { [0]=> array(2) { [0]=> string(4) "Item" [1]=> string(4) "Cost" } [1]=> array(2) { [0]=> string(4) "Rent" [1]=> int(1000) } [2]=> array(2) { [0]=> string(3) "Gas" [1]=> int(100) } [3]=> array(2) { [0]= string(4) "Food" [1]=> int(300) } [4]=> array(2) { [0]=> string(3) "Gym" [1]=> int(50) } } ``` ### 圖表 直方圖 ``` <?php /** * @desc chart.php 描述信息 * @author Tinywan(ShaoBo Wan) * @date 2024/8/7 20:43 */ declare(strict_types=1); $config = [ 'path' => '/home/www/build' // xlsx文件保存路徑 ]; $fileObject = new \Vtiful\Kernel\Excel($config); $fileObject = $fileObject->fileName('chart.xlsx'); $fileHandle = $fileObject->getHandle(); $chart = new \Vtiful\Kernel\Chart($fileHandle, \Vtiful\Kernel\Chart::CHART_COLUMN); $chartResource = $chart->series('Sheet1!$A$1:$A$5') ->series('Sheet1!$B$1:$B$5') ->series('Sheet1!$C$1:$C$5') ->toResource(); $filePath = $fileObject->data([ [1, 2, 3], [2, 4, 6], [3, 6, 9], [4, 8, 12], [5, 10, 15], ])->insertChart(0, 3, $chartResource)->output(); ``` ![](https://img.kancloud.cn/f1/62/f1624acc50c08137fd929a473c3af5fa_703x361.png)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看