首页 > 解决方案 > 导出的 Excel 存储在项目的本地文件夹中

问题描述

我有下载excel文件的代码。我想将此文件保存在文件夹中。

 if($array_count > 0)
        {
           $fileName = "export_data" . rand(1,100) . ".xls";

                 if ($error_array) {
                    function filterData(&$str) {
                       $str = preg_replace("/\t/", "\\t", $str);
                       $str = preg_replace("/\r?\n/", "\\n", $str);
                       if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
                    }

                    // headers for download
                    header("Content-Disposition: attachment; filename=\"$fileName\"");
                    header("Content-Type: application/vnd.ms-excel");

                    $flag = false;
                    foreach($error_array as $row) {
                       if(!$flag) {
                          // display column names as first row
                        //  echo implode("\t", array_keys($row)). "\r\n";;

                          $flag = true;
                       }
                       // filter data
                       //header_remove('require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php")'); 
                       array_walk($row, 'filterData');
                       echo implode("\t", array_values($row)). "\r\n"; ;

                    }
                    //exit;       
                 }
          } 

请有人帮我更改代码以将文件保存在文件夹中。

标签: phpmysql

解决方案


在这里,我使用静态数组数据为您制作了一个示例。我们可以将文件保存在文件夹中。

您可以根据需要更改此代码。

<?php 

$data_array = array (
    array ('1','2'),
    array ('2','2'),
    array ('3','6'),
    array ('4','2'),
    array ('6','5')
);
$sep = "\t";
$xls = "col1".$sep."col2 \n";//Column headers
foreach ($data_array as $record){
$xls.= $record[0].$sep.$record[1]."\n"; //Append data to xls
}

$xls_handler = fopen ('xlsfile.xls','w');
fwrite ($xls_handler,$xls);
fclose ($xls_handler);

echo 'Data saved to xlsfile.xls';

?>

推荐阅读