2012-10-18 40 views
-1

我申請this solution解決編碼的問題,我得到了文件導出至.csv和Excel,它成功地工作,但現在另一個問題出現了:如何解決Excel導出(PHP)中的「選項卡」?

的選項卡(「\ t」的)我在PHP中使用的分隔符Excel文件停止工作。在我解決前面的問題之前,它正在工作。當我打開Excel文件時,它顯示如下:

「ColumnAColumbBColumnC」(all together)。

如果出口就如CSV ('Content-type: text/csv; charset=UTF-8')我有成功,但不是爲Excel(Content-type: application/vnd.ms-excel; charset=UTF-8)。

這個任何解決方案?

注意:使用「,」作爲分隔符對我來說不是一個好的解決方案,因爲我在某些字段中使用了「,」的值。

回答

9

我在PHP中使用作爲分隔符的Excel文件的選項卡(「\ t」的)停止工作。

是的,這是正確的。

儘管這樣仍有導出到Excel的簡單方法。

使用<td><tr>的表,這確實不錯。

一個例子:

<?php 
    header("Content-Type: text/plain"); 
    echo "<table border='1'>"; 
    echo "<tr>"; 
    echo "<th>Name</th>"; 
    echo "<th>First Name</th>"; 
    echo "<th>Department</th>"; 
    echo "<th>Date</th>"; 
    echo "<th>Topic</th>"; 
    echo "<th>State</th>"; 
    echo "<th>E-mail</th>"; 
    echo "<th>Place</th>"; 
    echo "<th>Registration fee</th>"; 
    echo '</tr>'; 
    echo '</table>'; 
    header("Content-disposition: attachment; filename=example_export_to_excel.xls"); 
    } 
?> 

這完全適用導出到Excel。 沒有圖書館需要,爲什麼看起來複雜的事情簡單,因爲它可以。

2

如果您在字符串字段中有一個逗號,並且希望使用逗號作爲分隔符,那麼您將該字符串括在引號中......這就是CSV文件的工作方式。

所以我的假設是,你沒有使用PHP內置的fputcsv()函數來創建你的csv文件,否則你已經知道這個......爲什麼不考慮使用它,因爲它處理所有的小錯綜複雜你似乎沒有意識到。

請注意,Excel CSV文件確實使用一個製表符,並且通常使用BOM而不是UTF-8編碼爲UTF-16LE;並且不需要識別內容類型頭中的字符集。

相關問題