若用 php com 開啟時, 若欄位內文字有多種編碼, 目前尚不知如何才能正確轉換來顯示, 此時可利用轉成統一的 unicode 編碼後, 再來處理資料, 就可以克服多種編碼問題. 下程式碼是將excel存成 unicode 格式, 並以 tab 作欄位分隔
public function saveAsUnicode($tar) { try { $strTemp = ""; $excel = new COM("Excel.Application"); $excel->Application->DisplayAlerts = False; //關閉提示訊息 $Workbook = $excel->Workbooks->Open($tar); $Worksheet = $Workbook->Worksheets(1); /* 儲存格式 xlWorkbookNormal -4143, xlHtml 44, xlWebArchive 45, xlXMLSpreadsheet 46, xlCSV 6 xlCurrentPlatformText -4158, xlUnicodeText 42, xlTextPrinter 36 */ $strTemp = "$tar.txt"; $Worksheet->SaveAs($strTemp, 42); //另存新檔,42表unicode格式, 以 tab 分隔欄位 } catch (exception $e) { $strTemp = ""; } try { $excel->Quit(); } catch (exception $e) { } return $strTemp; }