2016-10-11 55 views
0

データベースから取得したデータを含むXLSファイルを出力するスクリプトを作成しました。問題は、OSXとLinux上でファイルを見ると、それが想定されているように見えるということです。 Windowsのエクセル上のWindows上PHP出力Excel - ファイル形式と拡張子が一致しません

行動

は、次のようなメッセージが表示されます。

ファイル形式と拡張子 'nameofthefile.xls'が一致しません。ファイルが破損しているか、安全でない可能性があります。あなたが信用しない限り.....

これまでにこの問題に直面しましたか?

$sql = "MY SQL QUERY"; 
$result = mysqli_query($conn, $sql); 

if (mysqli_num_rows($result) > 0) { 
    $output .= '<table class="table" border="1" 
       <tr> 
       <th>MY Table heads</th> 
       <th>MY Table heads</th> 
       </tr>'; 

    $count = 1; 

    while ($row = mysqli_fetch_array($result)) { 
     $data  = strtotime($row['reg_date']); 
     $format_date = date("d.M.Y", $data); 

     $output .= ' 
        <tr> 
        <td>' . $count++ . '</td> 
        <td>' . $row["id"] . '</td> 
         <td>' . $row["firstname"] . '</td> 
          <td>' . $row["lastname"] . '</td> 
            <td>' . $format_date . '</td> 
        </tr>'; 
    } 
    $output .= '</table>'; 

    header("Content-Type: application/xls"); 
    header("Content-Disposition: attachement; filename=download.xls"); 

    echo $output; 


    } 
} 
+0

私はそれが理由だとは思っていませんが、あなたのコードにはタイプミスがあります。 – phaberest

+0

タイプミスが修正されました。 '(改訂履歴:Content-Disposition:添付ファイル; filename = download.xls);問題はまだ再生されています...また、それを指摘していただきありがとうございます。 – Daniel

+0

私は別のContent-Typeで試してみたいと思います。http://stackoverflow.com/questions/974079/setting-mime-type-for-excel-document – phaberest

答えて

1

私はhttp://www.maatwebsite.nl/laravel-excel/docsでLaravelを使用して同じ問題を持っていたし、クリーンなコードがあった場合、私がチェックすることで問題を解決するため、私はどこかに私のコード内の文字とするとき、私はそれを検出したアポストロフィ( ')を持っていましたその文字を消去し、そのファイルは成功してエクスポートされました。がんばろう!

+0

私はこれを見つけました。基本的には、ExcelファイルにHTMLを追加しようとしているからです。http://salesforce.stackexchange.com/questions/114584/warning-propmt-on-downloaded-excel-file-format-and-拡張子が一致しない – Daniel

関連する問題