Доброго времени суток, на самом деле вопросов несколько.
Суть задачи в том что бы получить данные из excel файла, созданного в 1C, с помощью PHP и положить в базу.
Phpexcel и PhpSpreadsheet не могут загрузить некоторые из файлов, причем если одна библиотека грузит нормально, то вторая не факт что это сделает, применять их в конкретных случаях я не могу, потому как один и тот же пользователь может грузить 2 на первый взгляд одинаковых файла, а разница, которую перехватить не получается, может не позволить это сделать, причем если файлы "пересохранять" в MS Excel то все нормально, но заставлять пользователей это делать я не могу, пробовал EasyXLS, платность отталкивает заказчика.
Вопрос - есть ли еще библиотеки для чтения таблиц? Напомню что файлы формирует 1С.
Вопрос 2 - Я еще не пробовал GoogleSheets, устал терять время, и решил спросить, возможно ли через этот сервис не выгружая в GoogleDocs читать файлы, информации найти не могу...
Тоже нет, 1С компания_1 формирует счет-фактуру в виде excel, и компания_2 раньше брала эти с/ф и вручную загружала себе, теперь этот процесс хотят автоматизировать, но спасибо вы меня натолкнули на некоторые вопросы к заказчику =)
gsur, это понятно. Я не особенно знаком с 1С, но 1С-Битрикс, выгружая файлы для Ёкселя, на самом деле жульничает - выдает не XLS, а HTML с другим расширением. Ёксель их открывает, как родные. А вот для парсинга, как мы понимаем, разница есть... если ваш клиент не пересохраняет их в Ёкселе.
Попробуйте перед работой с файлом пересохранить его в xlsx (или вовсе в csv, с которым точно не будет проблем)
Мы использовали для этой цели утилиту unoconv (по сути, LibreOffice). Конвертировали xls и xlsx от клиентов в csv, т.к. работа с xlsx начала требовать уж очень много ОП и времени с использованием указанных вами библиотек.
Не знаю, в каком формате 1с формирует файлы, но если это .xlsx - то это zip-архив обычный. Откройте его и поковыряйтесь в xml-ках, посмотрите что там и где хранится.
Пока существуют файлы .xls .xlsx .xlsb, Phpexcel как раз .xlsx этим методом и открывает, но однажды массив с результатом пришел пустым, потратив уйму времени на вычислении момента где данные пропадают, нашел что строка simplexml_load_string как раз таки и возвращает "ничего", не знаю возможно ли копать глубже, открывая "не читаемый" файл из 1С и его пересохраненную версию из MS Excel в простом текстовом редакторе(xml-ы из архива) не нашел разницы, однако результат чтения первого пуст, второй в полном объеме.