Impostare in modo esplicito il tipo di dati di una cella come text per i valori numbersci

Voglio impostare in modo esplicito il tipo di dati di una cella come text per i valori numbersci.

Sto recuperando i dati dal mio database MySQL ed esportndo in Excel usando PHPExcel Library. Ho grandi numbers lunghi circa 20 cifre che voglio esportre in cella excel (each cella dell'intera colonna avrà numbers diversi).

Ho scoperto che è ansible farlo tramite il codice con la documentazione PHPExcel 4.6.7.

$i=0; foreach($dd as $d) { $objPHPExcel ->setActiveSheetIndex(0) ->getcell('A'.$i) ->setValueExplicit($d['serial_no'], PHPExcel_Cell_DataType::TYPE_STRING); $i++; } 

$d['serial_no'] – serie differenziate provenienti dal database es. "9876543211234567890".

Ho implementato questo codice funzionando correttamente. Ma quando apro il foglio excel e provo a modificare quella cella, clicco su qualsiasi altra parte per essere nuovamente convertito in formato numbersco (requisito del cliente: dovrebbe rimanere text).

Voglio mantenere il text della cella solo anche se lo modifichi.

Non l'ho testato, ma probabilmente impostare la cella come "quotePrefix" potrebbe impedire a MS Excel di provare a convertire il tipo di dati quando lo si modifica con MS Excel

 $objPHPExcel->getActiveSheet() ->getStyle('A2:O128') ->setQuotePrefix(true); 

Solo Excel2007

 $objPHPExcel->getActiveSheet() ->getStyle('A'.$i) ->getNumberFormat() ->setFormatCode( PHPExcel_Style_NumberFormat::FORMAT_TEXT );