phpはcsv形式のデータをエクスポートして、数字をテキストに変換する構想とコードを共有します。

3873 ワード

php導出csvフォーマットデータの実現:まず文字列記憶内容を定義し、例えば $export data='ルール111、ルール222、ルール222、服薬2222、ルール1、ルール2、ルール3、マッチング文字、設定時間、有効期限'.''
csvを保存する必要がある配列に対してforeachサイクルを行います。例えば

              if (!empty($lists)){
                  foreach($lists as $key => $value){
                    $time = date("Y-m-d_H:i:s", $value['add_time']);
                    $exportdata .= "\"\t".$value['Rule_id']."\",\"\t".$value['Rule_name']."\",\"\t".$value['Matching_level']."\",\"\t"."{$value['Rule_action']}"."\",\"\t".$value['Service_type']."\",\"\t".$value['Keyword1']."\",\"\t".$value['Keyword2']."\",\"\t".$value['Keyword3']."\",\"\t".$value['Matching_word']."\",\"\t".$value['Set_time']."\",\"\t".$value['Validation_time']."\"
";
                  }
              }
csv形式の内容は'で仕切られています。現実的には分割できます。行の後ろに''だけで支店ができます。
あとで出力を実行すればいいです。例えば

              $filename = "plcnetinfo_{$date}.csv";

              header("Content-type:application/vnd.ms-excel");
              header("Content-Disposition: attachment; filename=$filename");

              header("Expires: 0");
              header("Pragma: public");
              header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
              header("Cache-Control: public");

              echo(mb_convert_encoding($exportdata,"gb2312","UTF-8"));

しかし、数字をエクスポートする時、csvは前の0を削除します。例えば、00001を表示したいです。   ,出力すると1が表示されます。このような解決策は出力時に'\\\\\'t'だけで、これはタブで、スペースとして表示されます。数値をテキストに変換できます。導入時には'が表示されます。    '.このようなものはphpが持っているtrim関数を使ってください。完全コードは以下の通りです。
              
              //var_dump($sql);
              $lists = $this->dbo->query($sql);

       $exportdata = ' 111, 222, 222, 222, 2222, 1, 2, 3, , , '."
";
              $date = date("YmdHis");
              if (!empty($lists)){
                  foreach($lists as $key => $value){
                    $time = date("Y-m-d_H:i:s", $value['add_time']);
                    $exportdata .= "\"\t".$value['Rule_id']."\",\"\t".$value['Rule_name']."\",\"\t".$value['Matching_level']."\",\"\t"."{$value['Rule_action']}"."\",\"\t".$value['Service_type']."\",\"\t".$value['Keyword1']."\",\"\t".$value['Keyword2']."\",\"\t".$value['Keyword3']."\",\"\t".$value['Matching_word']."\",\"\t".$value['Set_time']."\",\"\t".$value['Validation_time']."\"
";
                  }
              }
              $filename = "plcnetinfo_{$date}.csv";

              header("Content-type:application/vnd.ms-excel");
              header("Content-Disposition: attachment; filename=$filename");

              header("Expires: 0");
              header("Pragma: public");
              header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
              header("Cache-Control: public");

              echo(mb_convert_encoding($exportdata,"gb2312","UTF-8"));