Я сталкиваюсь со специфической проблемой при разборе файла Excel (.xls) с использованием PHPExcelReader, который фактически является классом Spreadsheet_Excel_Reader. Я использовал его так много раз в разных приложениях, и каждый раз, когда я был в порядке. Я работаю с приложением, в котором есть папка ftp и файл Excel удаленно помещается туда каждый день. У меня есть задача планировщика, которая запускается каждый день, и я читаю файл Excel и обновляю базу данных.
Это работало очень хорошо в течение нескольких месяцев. Теперь они добавляют новые столбцы в файлы, и Spreadsheet_Excel_Reader не может прочитать числовые значения и значения даты. Но если я просто открою файл и нажму CTRL + S, ничего не делая, svn скажет, что файл был изменен, хотя я не вижу ничего измененного по сравнению с ‘SVN: отличается от предыдущей версии’. Однако это делает волшебство, поскольку я вижу, что сохраненный файл анализируется правильно.
Ниже приведен результат сильфона, когда я пытаюсь запустить скрипт, не касаясь файла. Пожалуйста, посмотрите на индекс от 5 до 9.
Теперь посмотрите на результат разбора, когда я запускаю скрипт после открытия файла и нажимаю CTRL + S. Теперь полностью уверен, что происходит. Я связался с ними, и они сказали, что не делают ничего нового.
Есть идеи об этой проблеме?
Обмен идеями здесь очень ценится.
Как вы проходите и захватываете значения ячеек? Вы пытались использовать $cell->val(12,6)
? Альтернативой может быть (спасибо Марку Бейкеру):
$range = 'F'.$row.':'.'J'.$row; # assuming F-J cols are your numeric cols
$objPHPExcel->getActiveSheet()
->getStyle($range)
->getNumberFormat()
->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
Других решений пока нет …