• <small id='k5jYb'></small><noframes id='k5jYb'>

        • <bdo id='k5jYb'></bdo><ul id='k5jYb'></ul>
        <legend id='k5jYb'><style id='k5jYb'><dir id='k5jYb'><q id='k5jYb'></q></dir></style></legend>
        <i id='k5jYb'><tr id='k5jYb'><dt id='k5jYb'><q id='k5jYb'><span id='k5jYb'><b id='k5jYb'><form id='k5jYb'><ins id='k5jYb'></ins><ul id='k5jYb'></ul><sub id='k5jYb'></sub></form><legend id='k5jYb'></legend><bdo id='k5jYb'><pre id='k5jYb'><center id='k5jYb'></center></pre></bdo></b><th id='k5jYb'></th></span></q></dt></tr></i><div id='k5jYb'><tfoot id='k5jYb'></tfoot><dl id='k5jYb'><fieldset id='k5jYb'></fieldset></dl></div>

        <tfoot id='k5jYb'></tfoot>

        phpoffice/phpspreadsheet导出数据常用方法

        时间:2024-09-22

          <small id='Oee49'></small><noframes id='Oee49'>

              <tbody id='Oee49'></tbody>
          1. <i id='Oee49'><tr id='Oee49'><dt id='Oee49'><q id='Oee49'><span id='Oee49'><b id='Oee49'><form id='Oee49'><ins id='Oee49'></ins><ul id='Oee49'></ul><sub id='Oee49'></sub></form><legend id='Oee49'></legend><bdo id='Oee49'><pre id='Oee49'><center id='Oee49'></center></pre></bdo></b><th id='Oee49'></th></span></q></dt></tr></i><div id='Oee49'><tfoot id='Oee49'></tfoot><dl id='Oee49'><fieldset id='Oee49'></fieldset></dl></div>
              <legend id='Oee49'><style id='Oee49'><dir id='Oee49'><q id='Oee49'></q></dir></style></legend>
                <bdo id='Oee49'></bdo><ul id='Oee49'></ul>

                  <tfoot id='Oee49'></tfoot>

                  使用composer安装phpoffice/phpspreadsheet

                  composer require phpoffice/phpspreadsheet

                  逐行插入数据:

                  <?php
                      //引入加载文件
                      require_once 'vendor/autoload.php';
                  
                       // 创建一个新的Spreadsheet对象
                      $spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
                      // 获取活动的工作表
                      $sheet = $spreadsheet->getActiveSheet();
                  
                      $header=['姓名','年龄'];//头部标题
                      //设置头部标题
                      foreach ($header as $i => $Htitle) {
                          $column_cell = 'A'.($i+1);
                          // 设置头部标题
                          $sheet->setCellValue($column_cell, $Htitle);
                      }
                      //示例数据,视业务而定
                      $data=[
                          [
                              "name"=>"张三",
                              "age"=>18
                          ],
                          [
                              "name"=>"李四",
                              "age"=>20
                          ]
                      ];
                      $num = 2; //从第二行开始填充数据
                      foreach ($data as $i => $row) {
                          $row_cell = $num + $i;
                          // 设置单元格内容
                          $sheet->setCellValue('A'.$row_cell, $row['name']);
                          $sheet->setCellValue('B'.$row_cell, $row['age']);
                      }
                  
                      // // 获取单元格样式对象
                      // $style = $sheet->getStyle('A1');
                  
                      // // 获取并设置对齐方式
                      // $alignment = $style->getAlignment();
                      // $alignment->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_LEFT);
                  
                      // // 应用样式
                      // $style->setAlignment($alignment);
                  
                      // 导出或保存文件
                      $writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
                      $writer->setUseDiskCaching(true);//启动磁盘缓存
                      $writer->setIncludeCharts(false);//关闭图表
                      $writer->setPreCalculateFormulas(false);//关闭公式预计算
                      $writer->save('example.xlsx');//保存文件路径需使用绝对路径
                  ?>
                  

                  批量插入数据:

                  <?php
                      //引入加载文件
                      require_once 'vendor/autoload.php';
                  
                       // 创建一个新的Spreadsheet对象
                      $spreadsheet = new PhpOffice\PhpSpreadsheet\Spreadsheet();
                      // 获取活动的工作表
                      $sheet = $spreadsheet->getActiveSheet();
                      //示例数据
                      $data = [
                          ['姓名', '年龄', '城市'],
                          ['张三', 25, '北京'],
                          ['李四', 30, '上海'],
                          ['王五', 28, '广州'],
                      ];//填充数据应为二维数组
                      $sheet->fromArray($data, null, "A1");//从A1单元格开始填充
                      // 导出或保存文件
                      $writer = IOFactory::createWriter($spreadsheet, 'Xlsx');//使用工厂方法IOFactory::createWriter可创建导出不同格式的Excel文件  
                      $writer->save('example.xlsx');//保存文件路径需使用绝对路径
                  ?>
                  
                  优化手段:

                  分批处理数据: 不要一次性加载所有数据到内存中,尤其是数据量很大时。可以使用分页或分批加载数据,逐步写入Excel文件。
                  设置使用磁盘缓存: 在保存之前使用$writer->setUseDiskCaching(true),优化内存的使用和性能;
                  减少内存占用: 使用$writer->setPreCalculateFormulas(false),关闭公式预计算,减少内存占用。
                  减少内存占用: 使用$writer->setIncludeCharts(false),关闭图表,减少内存占用。
                  使用流式写入: 对于大量数据,考虑使用流式写入(streamed writing),例如使用PhpSpreadsheet 中的 PhpOffice\PhpSpreadsheet\Writer\Xlsx 类。
                   
                  上一篇:使用PhpSpreadsheet导出数据到excel表格 下一篇:没有了

                  相关文章

                  <tfoot id='SV6m7'></tfoot>
                  1. <legend id='SV6m7'><style id='SV6m7'><dir id='SV6m7'><q id='SV6m7'></q></dir></style></legend>

                    <small id='SV6m7'></small><noframes id='SV6m7'>

                    <i id='SV6m7'><tr id='SV6m7'><dt id='SV6m7'><q id='SV6m7'><span id='SV6m7'><b id='SV6m7'><form id='SV6m7'><ins id='SV6m7'></ins><ul id='SV6m7'></ul><sub id='SV6m7'></sub></form><legend id='SV6m7'></legend><bdo id='SV6m7'><pre id='SV6m7'><center id='SV6m7'></center></pre></bdo></b><th id='SV6m7'></th></span></q></dt></tr></i><div id='SV6m7'><tfoot id='SV6m7'></tfoot><dl id='SV6m7'><fieldset id='SV6m7'></fieldset></dl></div>
                      <bdo id='SV6m7'></bdo><ul id='SV6m7'></ul>