Здравствуйте! Не могу решить проблему чтения данных при помощи библиотеки PHPExcel.
В ячейках содержутся строки из цифр с нулями. Нули при считывании исчизают.
Например в файле Excel видим 000388, а при чтении получаем число 388. 1С записывает туда данные в формате Дополнительный Zip Code. Если принудительно поставить для столбца текстовый тип, то нули сохраняются (делать так всегда не могу, файлы получаю от клиентов, которым трудно объяснить, что надо выставлять тип данных текст. Что видят, то и отправляют).
Пробовал из CSV считывать данные, тотже результат, получаем 388 вместо 000388.
Как быть?
1. pavel_vz - 14 Марта, 2014 - 12:53:35 - перейти к сообщению
2. IllusionMH - 14 Марта, 2014 - 12:59:09 - перейти к сообщению
pavel_vz, как крайнее решение, можно значение этого элемента массива переприсваивать через sprintf (дополнение нулями есть в примерах)
3. VenZell - 14 Марта, 2014 - 13:55:15 - перейти к сообщению
IllusionMH, тогда, может, лучше str_pad?
4. IllusionMH - 14 Марта, 2014 - 14:07:22 - перейти к сообщению
VenZell, можно и так. Я просто этой функции не знал или уже забыл.
5. pavel_vz - 14 Марта, 2014 - 14:21:45 - перейти к сообщению
IllusionMH пишет:
pavel_vz, как крайнее решение, можно значение этого элемента массива переприсваивать через sprintf (дополнение нулями есть в примерах)
Все это не годится, т.к. заранее не известно в каком формате пришлют товарный код из 1С. Может там не 5 символов, а 6 или 4 (00111,000111, 0011). Пока попросил клиента присылать свой каталог в CSV.
6. IllusionMH - 14 Марта, 2014 - 14:44:40 - перейти к сообщению
pavel_vz, а если getFormattedValue() ?
7. VenZell - 14 Марта, 2014 - 15:41:30 - перейти к сообщению
pavel_vz, а можете показать кусочек кода, как вы считывате данные из excel и из csv?
8. pavel_vz - 14 Марта, 2014 - 17:15:18 - перейти к сообщению
VenZell пишет:
pavel_vz, а можете показать кусочек кода, как вы считывате данные из excel и из csv?
CODE (htmlphp):
скопировать код в буфер обмена
скопировать код в буфер обмена
- function read_Excel($upfile){
- $objPHPExcel = PHPExcel_IOFactory::load($upfile, ReadDataOnly);
- //$objPHPExcel->setReadDataOnly(false);
- $objPHPExcel->setActiveSheetIndex(0);
- $aSheet = $objPHPExcel->getActiveSheet();
- $s=0;$i=0;
- foreach($aSheet->getRowIterator() as $row){
- $cellIterator = $row->getCellIterator();
- foreach($cellIterator as $k=> $cell){
- $i++;
- }
- $s++;
- }
- return $ara_sod;
- } //END