2015-06-09 110 views
0

當導入.csv文件時,使用貨幣值的單元格(例如,使用getCellValue時,£102.30返回爲bool(false)。PHPExcel貨幣獲取單元格值返回爲布爾值false

$objReader = \PHPExcel_IOFactory::createReader('CSV'); 
$objReader->setReadDataOnly(true); 
$loadedSpreadsheet = $objReader->load($spreadsheet); 
$activeSheet = $loadedSpreadsheet->getActiveSheet(); 

var_dump($activeSheet->getCell('Q13')->getValue()); // bool(false) 

這絕對是正確的單元格,因爲任何一側的柱子都能正常工作。

我試過設置編碼爲UTF-8,但是這並沒有任何工作

行13:

000001,Mags,Red,0,65,720mm x 1080mm,0,0,0,0,0,0,0,0,,1,£3.22,Mag,,,,,,,,, 
+0

你可以o在文本編輯器中輸入文件,並將該文件的第13行粘貼到您的問題中? –

+0

@Mark Ba​​ker更新 – iswinky

+0

因此,根本沒有在文件中引用字符串,嚴格來說這不是有效的CSV;但我猜PHPExcel不能處理未定義的字符集 –

回答

1

所以字符串文件中沒有報價爲所有,嚴格這不是一個有效的CSV;但我猜PHPExcel無法處理未定義的字符集...默認是UTF-8,但如果這不是UTF-8文件,那麼您需要讓PHPExcel知道正在使用的字符集:

$objReader->setInputEncoding('ISO-8859-1'); 

(或任何字符集的文件正在使用),因此它可以知道如何將它轉換爲UTF-8

PS

$objReader->setReadDataOnly(true); 

是多餘的,因爲一個CSV文件不能包含任何東西,但只有數據