簡體   English   中英

導出CSV文件有很多空行

[英]Export CSV file have many empty rows

我正在使用CakePHP 1.3和MSSQL Server 2012開發該應用程序。我已成功從數據庫中導出了CSV文件。

第一次,我讓它沒有問題。 我繼續在我的應用程序中執行其他一些功能。 而且比我嘗試再次測試導出功能。

和問題發生了。 問題出在我的CSV文件中,它出現了很多空行。 我檢查了數據庫,它沒有空值,也檢查了我的控制器和export.ctp。

我不知道為什么會發生此問題,所以有人可以意識到我的錯誤嗎?

我的控制器:

function csv_export() {
    $this->set('title_for_layout','Export Words List');
    Configure::write('debug',0);
    $this->layout=false;
    $filename = 'Wordlist_'.date('YmdHis');
    $th=array('id','avoidance_word','avoidance_word_yomi','replace_word','replace_word_yomi','creator','create_time','updator','update_time','invalid_flg');
    $Th_name=array('ID','Avoidance Words','Avoidance Words Yomi','Replace Word','Replace Word Yomi','Creator','Create Time','Updator','Update Time','Invalid Flag');
    $td=$this->MAvoidanceWord->find('all', array('fields'=>$th));
    $this->set(compact('filename','Th_name','td'));
}

我的觀點:

<?php
$csv->addRow($Th_name);
foreach ($td as $t){
    $csv->addRow();
    $csv->addField($t['MAvoidanceWord']['id']);
    $csv->addField($t['MAvoidanceWord']['avoidance_word']);
    $csv->addField($t['MAvoidanceWord']['avoidance_word_yomi']);
    $csv->addField($t['MAvoidanceWord']['replace_word']);
    $csv->addField($t['MAvoidanceWord']['replace_word_yomi']);
    $csv->addField($t['MAvoidanceWord']['creator']);
    $csv->addField($t['MAvoidanceWord']['create_time']);
    $csv->addField($t['MAvoidanceWord']['updator']);
    $csv->addField($t['MAvoidanceWord']['update_time']);
    $csv->addField($t['MAvoidanceWord']['invalid_flg']);
    $csv->endRow();}
    $csv->setFilename($filename);
    echo $csv->render(true,'UTF-8');
?>

還有我的CSV文件:

在此處輸入圖片說明

更新:我的CSV文件使用記事本++打開

在此處輸入圖片說明

從foreach內部刪除addRow

foreach ($td as $t){
    // $csv->addRow();
    $csv->addField($t['MAvoidanceWord']['id']); 
    ...

您可以使用addRow(array)addField (幾次)和endRow現在The fact that you have addRow` The fact that you have意味着它多次添加了一個空白行。

第二種方式 :嘗試添加ob_clean(); $csv->addRow($Th_name);

可能不是此代碼中的問題。
檢查兩次,確認沒有任何換行符在任何地方回顯。
可能是這樣的:

  <?php
     //php code
    ?>
    ↓
    ↓
    ↓

<?php ?>塊之外的所有內容都是無聲的,相當於echo“ ...”;
因此,這些換行符的打印方式類似於echo“ \\ n \\ n \\ n \\ n”;

好的做法是刪除最后一個?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM