Intereting Posts
Получение ошибки «Авторизованный токен от поставщика услуг не соответствует предоставленным сведениям о токенах запроса» в трехзначной аутентификации в google api не может загрузить oci8 -> Неустранимая ошибка: вызов неопределенной функции oci_connect () Как эхо текст заглавными буквами? Значение общедоступной статической переменной Вызовите хранимую процедуру (базу данных firebird) с php PDO МетодNotAllowedHttpException в строке RouteCollection.php 218: 4 Обработка истекшего токена в Laravel не удалось отправить html в почтовую функцию через (php) Не удалось установить PHP 7 с Homebrew на macOS Sierra Можно ли удалить ActionScript из SWF-файла с помощью PHP? Удалить cookie сеанса facebook из моего приложения при выходе из системы Тестирование модулей с помощью файла приложения конфигурации в Laravel Как найти заголовок раздела в платформе Magento? Переключение с PHP! Ereg и! Eregi на preg_match Как вывести все элементы массива php сразу?

Импортировать файлы excel с изображением в php / mysql

Я хочу создать сценарий импорта, который позволяет пользователям загружать свой файл excel (расширение не важно) в мое приложение php.

Приложение должно пересобирать список элементов (насколько это хорошо).

Трудность в этом случае заключается в том, что файлы excel содержат изображения …

Я читал информацию о библиотеке phpexcel, но он ничего не говорит о изображениях.

Кто-нибудь идеи?

Вы можете получить доступ к изображениям библиотеки PHPExcel .

Для импорта изображений:

$objPHPExcel = PHPExcel_IOFactory::load("MyExcelFile.xls"); foreach ($objPHPExcel->getSheetByName("My Sheet")->getDrawingCollection() as $drawing) { if ($drawing instanceof PHPExcel_Worksheet_MemoryDrawing) { ob_start(); call_user_func( $drawing->getRenderingFunction(), $drawing->getImageResource() ); $imageContents = ob_get_contents(); ob_end_clean(); } } 

Тогда $ imageContents будет содержать данные изображения, которые вы можете выводить или сохранять в виде файла и т. Д. Вы можете увидеть этот вопрос: PHPExcel: как вставить изображение в заголовок первой страницы и увеличить его, чтобы он соответствовал его содержимому?

Для доступа к изображениям:

ArrayObject всех объектов изображения на активном листе возвращает:

 $objPHPExcel->getActiveSheet()->getDrawingCollection() ; 

Эти объекты будут либо PHPExcel_Worksheet_Drawing либо PHPExcel_Worksheet_MemoryDrawing : вы можете определить, с какой помощью is_a () . Затем вы можете использовать методы, соответствующие этому классу (как описано в API), либо для чтения данных изображения из файла (для объектов PHPExcel_Worksheet_Drawing), либо непосредственно из объекта PHPExcel_Worksheet_MemoryDrawing. getName() и getDescription() могут использоваться для извлечения соответствующих значений для объекта изображения.

Теперь также возможно иметь объекты изображения, связанные с заголовками печати:

 $objPHPExcel->getActiveSheet()->getHeaderFooter()->getImages() 

может использоваться для извлечения изображений из верхнего / нижнего колонтитула. Это массив объектов PHPExcel_Worksheet_HeaderFooterDrawing. Все методы PHPExcel_Worksheet_Drawing могут использоваться для извлечения файла изображения из этих объектов.

Для импорта данных из Excel (или любой другой программы, способной создавать текстовый файл) очень просто использовать команду LOAD DATA из командной строки MySQL.

1) Сохраните данные Excel как файл csv (в Excel 2007 с помощью «Сохранить как»). Проверьте сохраненный файл с помощью текстового редактора, например «Блокнот», чтобы увидеть, на что он похож, например, какой разделитель использовался и т. Д.

2) LOAD DATA LOCAL INFILE 'C: \ temp \ yourfile.csv' INTO TABLE database.table FIELDS TERMINATED BY ';' ENCLOSED BY '' 'LINES TERMINATED by' \ r \ n '(field1, field2);

3) Чтобы сохранить изображение, необходимо использовать TO_BASE64

Готово!

Справка

PHPExcel поддерживает изображения, хотя он еще не поддерживает графики

РЕДАКТИРОВАТЬ

Поддержка чтения карт добавлена ​​для файлов Excel 2007+ .xlsx в версии 1.7.7 PHPExcel