0
我有一個程序,使文件一個excel文件,我有它,所以它擺脫愚蠢的格式mc excel但不會擺脫########我如何擺脫excel荒謬的自動格式在php中創建一個文件爲excel格式
這種格式發生在MC好像看起來如果一個單元格有符號 - 在它。但並非所有人都是這樣。
代碼的清理是:
function cleanData(&$str)
{
// escape tab characters
$str = preg_replace("/\t/", "\\t", $str);
// escape new lines
$str = preg_replace("/\r?\n/", "\\n", $str);
// convert 't' and 'f' to boolean values
if($str == 't') $str = 'TRUE';
if($str == 'f') $str = 'FALSE';
// force certain number/date formats to be imported as strings
if(preg_match("/^0/", $str) || preg_match("/^\+?\d{8,}$/", $str) || preg_match("/^\d{4}.\d{1,2}.\d{1,2}/", $str)) {
$str = "'$str";
}
// escape fields that include double quotes
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
讓我知道,如果你有什麼事!
謝謝。
我認爲你可以用一個單引號(')開始一個單元格的內容,它將字面上的內容對待,而不會混淆它。 – HappyTimeGopher
「########」是MS Excel在單元格的內容對於默認列大小過大時顯示的內容:它與符號無關。單元格中的值仍然正確,但在使用製表符分隔值文件時無法設置列寬,因此除非切換到真實的Excel文件 –
PS,否則無法控制此值。如果您必須使用製表符分隔的值文件;而不是編寫自己的轉換爲製表符分隔值,爲什麼不使用PHP的內置fputcsv()函數呢? –