Php выгрузка в excel: Экспорт данных в Excel на PHP

ERP 2.0 Выгрузка, загрузка табличной части в Excel с использованием прикрепленных файлов


Рассмотрим задачу выгрузки табличной части документа в Excel с сохранением в прикрепленных файлах и загрузки табличной части из прикрепленного файла.


 


На примере типовых процедур работы с Excel и прикрепленными файлами конфигурации ERP 2.0.


По примеру выгрузки/загрузки в/из Excel документа ПланПродаж конфигурации ERP 2.0 (подробное описание приведенных процедур и функций можно посмотреть в документе ПланПродаж).


 


Потребуются изменения в следующих объектах:


1.       Форма документа (для запуска загрузки/выгрузки)


1.1.  Добавить кнопку и команду по выгрузке в Excel (с неотмеченным свойством Изменяет сохраняемые данные)


1.2.  Добавить кнопку и команду по загрузке из Excel (с отмеченным свойством Изменяет сохраняемые данные)


1. 3.  Добавить реквизит формы ИмяДополнительнойКолонки (для заполнения дополнительных колонок Код, Артикул, если нужно)


2.       Модуль формы документа (для запуска загрузки/выгрузки)


2.1.  Добавить описание команд по выгрузке/загрузке в/из Excel (здесь и далее пример описания процедур и функций можно посмотреть в документе ПланПродаж конфигурации ERP 2.0)


2.2.  Добавить в описание события формы ПриСозданииНаСервере заполнение реквизита ИмяДополнительнойКолонки


2.3.  Добавить описание события ОбработкаВыбора табличной части, в которую загружаются данные из Excel (для отработки загрузки из Excel, когда все позиции файла определены, например, были выгружены в файл из табличной части документа)


2.4.  Добавить описание события формы документа ОбработкаВыбора (для отработки загрузки из Excel, когда не все позиции файла определены, например, были выгружены в файл из табличной части документа, но позже в файл вручную добавили новые позиции)


3.        Модуль менеджера документа (для формирования файла Excel и создания присоединенного файла)


3.1.  Добавить экспортную функцию СоздатьПрисоединенныйФайлExcel — типовое название для функции (по умолчанию в типовых процедурах используется функция с таким названием)


3.2.  Добавить функцию формирования печатной формы для файла – используется в СоздатьПрисоединенныйФайлExcel


4.       Документ (для формирования файла Excel)


4.1.  Добавить макет для формирования печатной формы – используется в функции формирования печатной формы для файла п. 3.2, можно скопировать макет ПФ_MXL_ПланПродаж и доработать по аналогии (Область колонок УникальныеИдентификаторы – по данным этой области определяются соответствия позиций при загрузке выгруженным ранее позициям. Область колонок КолонкаКодов для вывода данных, если используется ИмяДополнительнойКолонки)


5.        Конфигурация (для хранения присоединенных файлов)


5.1. Добавить справочник …ПрисоединенныеФайлы, шаблон названия:


<ИмяДокумента>ПрисоединенныеФайлы, состав справочника можно скопировать из справочника ПланПродажПрисоединенныеФайлы


6.       Регистр сведений ПрисоединенныеФайлы (для хранения присоединенных файлов)


6.1. Измерению ПрисоединенныйФайл добавить тип справочника, созданного в п. 5.1


7.       Подписки на события (для отработки действий над справочником …ПрисоединенныеФайлы, в т.ч. заполнения реквизита Автор файла)


7.1.  ВыполнитьДействияПередЗаписьюПрисоединенногоФайла в Источник добавить тип справочника, созданного в п. 5.1


7.2.  ВыполнитьДействияПередУдалениемПрисоединенногоФайла в Источник добавить тип справочника, созданного в п. 5.1


7.3.  ВыполнитьДействияПриЗаписиПрисоединенногоФайла в Источник добавить тип справочника, созданного в п. 5.1


7.4.  ПереопределитьПолучаемуюФормуПрисоединенногоФайла в Источник добавить тип справочника, созданного в п. 5.1


8.       Регистр сведений НаличиеПрисоединенныхФайлов (для отработки действий в подписках на события)


8.1.  Реквизиту ОбъектСФайлами добавить тип справочника, созданного в п. 5.1


9.       Общая команда ПрисоединенныеФайлыКОбъекту (для перехода из формы документа к прикрепленным файлам)


9.1. В Тип параметра команды добавить ссылку на документ


10.   Обработка ЗагрузкаДанныхИзВнешнихФайлов (для загрузки из прикрепленного файла)


Добавить форму для сопоставления данных файла данным в базе, можно скопировать форму ФормаДляПланов и доработать по аналогии (для ручного сопоставления позиций из файла, для которых не найдено соответствия в базе – используется в ОбработкеВыбора формы документа и при вызове загрузки из Excel из формы документа, если при загрузке найдены позиции, по которым не удалось определить соответствующие элементы в базе, например, были выгружены из табличной части документа, но позже в файл вручную добавили новые позиции)


 


Автор


Королева Дина

Подписывайтесь на канал

«Полезный 1С»

В телеграм канале — наш практический опыт, бизнес-кейсы и способы повышения эффективности компании, которые мы опробовали внутри группы Neti.

Возврат к списку

1С Битрикс загрузка и выгрузка данных в формате Excel » KDV.su — Сайт-Блог Климова Дмитрия

Расскажу, как легко выгрузить и загрузить товары, обновить цены, остатки и любую другую информацию на сайте под управлением 1С Битрикс.

Содержание статьи [Закрыть]

  • 1 Введение
  • 2 Экспорт
    • 2.1 Шаг 1
    • 2.2 Шаг 2
    • 2.3 Шаг 3
    • 2.4 Вывод
  • 3 Импорт
    • 3.1 Шаг 1
    • 3.2 Шаг 2
    • 3.3 Шаг 3
    • 3.4 Вывод
  • 4 Заключение
  • 5 Ссылки

Введение

В этой статья я расскажу, как вам организовать на вашем сайте под управлением 1С Битрикс самый лучший способ выгрузки и загрузки (Экспорт и Импорт) данных для этого нам понадобится установить модуль «Экспорт/Импорт товаров в Excel» от «esolutions.su»

Данный модуль платный, но его цена не высокая если посмотреть на его возможности. Перед покупкой вы сможете его протестировать в полном объёме без ограничений в течении 14 дней.

На маркетплейсе битрикса вы можете найти много похожих модулей, но я рекомендую именно этот модуль по нескольким причинам.

  1. Имеет возможность загрузить (из формата файла: CSV, XLS, XLSX, XLSM, HTML, DBF) или выгрузить (в формат файла: CSV, XLS, XLSX, DBF) любые данные.
  2. Работает с информационными и highload блоками
  3. Отличная техническая поддержка.
  4. Понятный и удобный интерфейс использования.
  5. Приемлемая цена и возможность протестировать перед покупкой.
  6. Регулярное обновление и улучшения.

После установки модуля у вас на сайте появится в разделе «Контент» две вкладки «Импорт из Excel» и «Экспорт в Excel», а в настройках модулей появится Экспорт/Импорт товаров в Excel».

В настройках модуля можно оставить всё по умолчанию или настроить под ваши нужды и характеристики хостинга где располагается ваш сайт всё довольно понятно вам нужно только проставить галочки или заполнить поля.

Я не буду полностью рассказывать обо всех настройках и возможностях так как обо всём рассказать в одной статье просто не реально из-за того, что бывают разные задачи и разные характеристики сайта, а вкратце опишу некоторые на которые обратите внимание, также под многими из настроек есть подсказки думаю вам будет всё понятно для чего та или иная настройка нужна.

Экспорт

Для создания экспорта нам нужно будет пройти три шага.

Экспорт — Шаг 1

На первом шаге мы создаём профиль и настраиваем его. В моём примере я буду использовать создание файла экспорта в формате Excel .XLSX.

Название профиля: Вам нужно придумать название вашего профиля экспорта, желательно назвать его коротко и со смыслом того для чего он создаётся.

Тип файла экспорта: Выбираем в каком формате у нас на выходе получится файл экспорта.

Путь к файлу экспорта: Указываем путь от корня сайта где у вас будет создан файл экспорта. По умолчанию путь и имеет примерно такой вид /upload/export_743588399.xlsx, где «upload» это папка, «export_743588399» название файла, «.xlsx» расширение имени файла.

Информационный блок: Выбираем из какого информационного блока мы будем выгружать данные.

Разделитель для множественных свойств: Некоторые свойства информационного блока могут быть множественного вида, то есть в одном свойстве могут быть несколько значений, чтобы их разделять мы можем указать любое значение, по умолчанию это точка с запятой «;». Этот параметр мы можем оставить по умолчанию так как на втором шаге в самих настройках выгружаемого свойства мы можем переопределить разделить по умолчанию.

Максимальный уровень вложенности разделов: Можно указать на какой уровень вложенности обрабатывать разделы или вообще отключить выбор разделов на втором шаге указав «0»

Указывать коды полей для последующего импорта: Это вам понадобится если вы в дальнейшем планируете использовать файл экспорта для последующего импорта. Намного упрощает и ускоряет процесс импорт так как к названию будет добавлен код поля к примеру {IE_NAME} и при импорте можно нажатием одной кнопки сопоставить значение.

Далее ниже будут отдельные вкладки с различными настройками такие как «Обработка разделов», «Свойства документа (только для xlsx-файлов)», «Внешние сервисы» и «Прочие настройки» в них вы по желанию указываете те данные которые вам могут понадобятся. Также при настройках у вас свержу есть кнопка при нажатии на которую вы можете посмотреть инструкции.

Экспорт — Шаг 2

На втором шаге мы настраиваем непосредственно то, что будет отображаться в файле экспорта.

Первым делом обратим внимание на блок с фильтром в котором мы можем отфильтровать те значения, которые хотим выгрузить. Чтобы добавить фильтр нажимаем на кнопку «+», выбираем значение, далее оно покажется в фильтре и при необходимости заполняем поле значения, далее нажимаем на кнопку «Найти».

К примеру, нам нужно выгружать только активные элементы, выбираем «Активность» и данное поле имеет 3 значения «(любой), «Да» и «Нет» выбираем «Да» и нажимаем кнопку «Найти» и в итоге у нас применится фильтр где будут выводиться только активные элементы.

Далее мы настраиваем сам лист, это то, что и как будет отображаться в файле экспорта.

Мы можем указать название листа так как у нас есть возможность создать несколько листов и при дальнейшем использовании файла будет удобно и понятно знать, что это за лист.

Под окном названия листа есть «Дополнительные настройки», развернув которые мы можем применить их к конкретному листу.

Теперь мы дошли до настроек вывода значений по столбцам.

По умолчанию у нас выводится 2 столбца с полями «ID элемента» и «Наименование элемента»

Нажав на поле у нас раскроется список всех доступных полей, которые мы можем выгрузить, если у вас много полей и вам трудно найти можете воспользоваться поиском введя название и по мере ввода у вас будут показываться поля, которые совпадают с вашим названием.

Рядом с полем у вас есть возможность дополнительно настроить выбранное значение (У разных значений полей могут быть разные настройки) или удалить поле, а также добавить рядом ещё одно поле.

Также вы можете дополнительно воспользоваться настройками строкой заголовков.

Нажав на кнопку действий в строке заголовков которая показана на скриншоте у вас появляется возможность настроить список полей, добавить строку ниже или выше настроить отображение или сбросить настройки, полный список виден на скрине.

После того как вы всё настроили вы можете внизу страницы нажать на «Экспортировать данные» или добавить ещё лист, просто сохранить данные и вернуться назад (Если вы не сохраните данные и вернётесь назад тогда вы потеряете всё что было настроено!)

Экспорт — Шаг 3

Когда вы нажмёте на кнопку «Экспортировать данные» вы перейдёте к третьему шагу где автоматически начнётся экспорт с информацией о его процессе.

После завершения экспорта данных вы получите ссылку на файл выгрузки битрикса.

 

Вывод

С помощью экспорта в модуле вы без особого труда сможете сформировать Excel файл с любыми данными из вашего сайта в удобном структурированном виде для различных задач, которые перед вами стоят. К примеру, с помощью экспорта можно сформировать удобный прайс лист ваших товаров, который будет автоматически обновляться и содержать актуальные данные и будет доступен для скачивания любому пользователю по ссылке «URL».

Импорт

Как и для экспорта импорт настраивается в три шага.

Импорт — Шаг 1

На первом шаге мы создаём профиль импорта и настраиваем его. В моём примере я буду использовать файл для импорта в формате Excel .XLSX. С помощью файла я обновлю цены и остаток в каталоге товара.

Название профиля: Вам нужно придумать название вашего профиля экспорта, желательно назвать его коротко и со смыслом того для чего он создаётся.

Файл для загрузки: Добавляем файл который мы загрузим в профиль импорта. Мы можем разным способом загрузить файл на выбор нам представлено — «Загрузить с компьютера», «Выбрать из структуры» (Выбрать файл который загружен у вас на сайте), «Загрузить файл с Email-адреса» (Можно загрузить файл из любого почтового ящика и из любого письма), «Загрузить файл по ссылке с авторизацией» (Загрузка файла по url адресу к которому требуется вводить логин и пароль) или просто «Вставить путь к файлу» (Обычный адрес по которому расположен файл).

Информационный блок: Выбираем в какой информационный блок мы будем загружать данные.

Поле (поля) для идентификации элемента: Указываем по какому полю или по нескольким полям будет происходить поиск элементов на сайте. В моём случае я выбрал по «Внешний код» так как товар у меня уже загружен и у него есть внешний код, также хочу отметить, что в по внешнему коду это самый быстрый способ идентификации элемента.

Поле (поля) для идентификации торговых предложений: Указываем по какому полю или по нескольким полям будет происходить поиск торговых предложений. Данное поле появится если в инфоблоке есть каталог и помимо обычного товара есть торговые предложения. В моём случае я оставляю все поля пустыми так как торговых предложений в том списке, который я буду обновлять их нет.

Далее необходимо отметить опции того, что нам потребуется.

Не создавать новые элементы: Режим обновления. Будут обновлены только существующие элементы, новые не будут созданы. Это то что мне нужно я выбираю его «+» (Далее я буду указывать «+» выбираю или «-» пропускаю и оставляю неотмеченным).

Не обновлять существующие элементы: Режим создания. Будут созданы только новые элементы, существующие останутся без изменений. «-»

Режим удаления элементов: Все элементы, найденные по указанным полям для идентификации, будут удалены. «-»

Если новый элемент, то делать элемент неактивным: У всех создаваемых элементов активность будет выключена. На активность обновляемых существующих элементов данная опция не влияет. «-»

Если кол-во нулевое, то делать элемент неактивным: Будут деактивированы элементы, у которых «Доступное количество» пустое или равно нулю. «-»

Если цена нулевая, то делать элемент неактивным: Будут деактивированы элементы, у которых не задан ни один тип цены. «-»

Активировать загружаемые элементы: При включении данной опции все создаваемые и обновляемые элементы будут загружаться активными, если не включены другие настройки, влияющие на активность загружаемых элементов. «-»

Не обновлять элемент при отсутствии изменений: Ускоряет обновление элемента. При включении данной галочки не будет обновлена дата изменения элемента. «+»

Добавлять новые привязки к разделам и сохранять старые: Для существующих элементов привязка к текущим разделам будет сохранена, но при этом добавится привязка к разделам, указанным при импорте. Если при импорте разделы не указаны, то привязка существующих элементов к разделам не изменится в любом случае и данную опцию можно не использовать. «+»

Загружать привязку к разделам только для новых элементов: Привязка к разделам будет применена только для новых элементов. «+»

Не загружать элементы без привязки к разделу: Элементы не будут загружены если к ним нет привязки разделов. «+»

Разделитель для множественных свойств: Некоторые свойства информационного блока могут быть множественного вида, то есть в одном свойстве могут быть несколько значений, чтобы их разделять мы можем указать любое значение, по умолчанию это точка с запятой «;». Этот параметр мы можем оставить по умолчанию так как на втором шаге в самих настройках выгружаемого свойства мы можем переопределить разделить по умолчанию.

Далее идёт ещё большой раскрывающийся список настроек вы можете их просмотреть если вам они будут нужны отметить галочкой соответствующую опцию. Я укажу только те, которые нужны были в моём случае.

Блок «Действия над отсутствующими в файле элементами» я выбрал «Обнулить остатки для отсутствующих в файле элементов», «Удалить цены для отсутствующих в файле элементов» (Так как если в прайс листе отсутствует товар, то скорее всего он уже снят с производства и его больше не выпускают. ), «Учитывать раздел, выбранный на 2-м шаге».

Блок «Действия над отсутствующими в файле торговыми предложениями» я пропускаю так как в моём случае нет торговых предложений и все опции остаются неотмеченные.

Блок «Обработка разделов» выбираю «Не создавать новые разделы» и «Не обновлять существующие разделы» разделы у нас уже существуют я не собираюсь добавлять и обновлять их.

Блок «Настройки торгового каталога» выбираю «Включить количественный учет» и «Рассчитывать доступное количество как сумму остатков по складам»

Блок «Статистика» Записываю статистику последних трёх импортов. Это удобно, когда вам необходимо проверить что у вас записалось и для того чтобы можно было откатить импорт.

Блок «Загрузка и чтение файла импорта» я отмечаю «Оптимизировать расход оперативной памяти». (Данная опция позволяет уменьшить расход оперативной памяти при разборе xlsx-файлов за счет вынесения данных на жесткий диск и использования поточного парсера xml. )

Блок «Дополнительные настройки» включаю «Отложить сброс кеша инфоблока на конец импорта». (По умолчанию кеш инфоблока сбрасывается после изменения каждого элемента и раздела инфоблока. Данная опция дает возможность отложить сброс кеша на конец импорта, чтобы можно было уменьшить нагрузку на сайт в процессе импорта.)

После того как вы всё настроили вы можете внизу страницы нажать на «Далее» чтобы перейти ко второму шагу или просто «Сохранить конфигурацию».

Импорт — Шаг 2

Настройки полей импорта на втором шаге похожи на настройки полей экспорта и повторять здесь не вижу смысла, а напишу только те, на которые вам нужно обратить внимание и их нет в экспорте.

Появились дополнительные настройки листа

Изменены настройки строк нажав на кнопку действий в строке заголовков у вас будет возможность указать что строка содержит заголовки (Рекомендую всегда выбирать это значение если вы планируете запускать импорт по Cron так как будет происходить проверка на изменение заголовков и если вы скачиваете файл по ссылке и в файле были изменены заголовки, то тогда импорт не будет произведён) или указать что строка содержит раздел это в том случае, когда файл имеет вложенность в виде дерева. Добавлена возможность «Применить настройки ко всем листам» если файл импорта содержит несколько листов то, то что вы настроите на первом листе перенесутся на второй и последующие.

В раскрывающемся списке при нажатии «Дополнительные настройки» у вас есть возможность задать разделы, по которым будет происходить поиск элементов. Если разделы заданы, то поиск элементов для обновления будет производится только в указанных разделах и их подразделах. Если же разделы не указаны, то поиск по умолчанию работает по всему инфоблоку. Рекомендую всегда указывать раздел для поиска.

В каждом подставленном свойстве существуют множества настроек, которые могут отличаться из-за характеристик самого свойства. К примеру, скрин одного свойства

После всех настроек вы можете «Сохранить конфигурацию», вернутся назад на первый шаг или сразу нажать на «Загрузить данные» (Если вы не сохраните данные и вернётесь назад тогда вы потеряете всё что было настроено!)

Импорт — Шаг 3

Когда вы нажмёте на кнопку «Загрузить данные» вы перейдёте к третьему шагу где автоматически начнётся импорт с информацией о его процессе.

После завершения импорта данных вам будет доступна информация сколько строк обработано, добавлено или обновлено элементов. Будет доступна ссылка на статистику и откат импорта если вы указали на первом шаге сохранение статистики. Покажет ошибки если такие будут.

Ваш профиль сохраняется в модуле, вы всегда можете запустить его изменить или запустить заново в ручном режиме или через планировщика задач «Cron» по расписанию.

Вывод

С помощью импорта в модуле вы без особого труда сможете обработать Excel файл с любыми данными для различных задач, которые перед вами стоят. К примеру, с помощью импорта можно загружать номенклатуру в ваш каталог обновлять остатки и цены в автоматическом режиме.

Заключение

Для полноценной возможности экспорта и импорта на сайте под управлением 1С Битрикс лучшего решения ещё не придумали. Данный модуль — это мощный инструмент выгрузки и загрузки данных, которым можно без особых усилий и навыков можно работать с Excel файлами. Умеет работать не только с информационными блоками, но и highload-блок тоже обработать может. Экспортом вы обрабатываете то что уже есть на вашем сайте и выгружаете данные, а импортом получаете данные и наполняете ими свой сайт.

Работает по расписанию. К примеру, в моём случае для экспорта в Cron я записал примерно следующее задание:

#29 4 * * * /usr/bin/php -d memory_limit=1024M /.../.../.../.../bitrix/php_interface/include/catalog_export/cron_frame.php 1 >/dev/null 2>&1

Немного пояснения по коду: «29 4 * * *» это время, когда нам нужно запускать, далее «/usr/bin/php» это путь до интерпретатора PHP, далее «-d memory_limit=512M» укажем сколько выделять памяти для процесса (Если у вас большой объём данных которые нужно выгрузить и происходит зависание экспорта тогда увеличьте это значение), далее «/…/…/…/…/bitrix/php_interface/include/catalog_export/cron_frame.php 1» это полный путь к файлу настроек модуля запуска по cron и «1» это номер ID вашего профиля экспорта, далее «>/dev/null 2>&1» этим мы запретим уведомление о выполнении команды. В зависимости от того где у вас работает сайт команда для запуска может отличаться.

Более полный список возможностей описан на странице модуля в маркетплейсе битрикса все ссылки вы найдёте ниже.

Ссылки

Модуль на маркетплейсе 1С Битрикс: https://marketplace.1c-bitrix.ru/solutions/esol.importexportexcel/

Сайт разработчика модуля: https://esolutions.su/

E-Mail почта технической поддержки разработчика модуля: [email protected]

Сайт на котором установлен и работает модуль экспорта и импорта: «Фабрика света» https://fabrika-sveta.com/ . Я являюсь администратором этого сайта и могу вам сказать, что каталог товаров содержит более 170000 товаров и несколько тысяч разделов. На нём ежедневно выполняется десятки процессов импорта и экспорта без каких-либо проблем.

Файл прайс лист производителя светодиодной продукции «Gauss», который обработали модулем импорта, с помощью этого файла был сформирован каталог и обновляются цены и остатки:


Скачать файл: gauss. rar [Размер: 7.18 Mb] (Скачиваний: 13)

Файл прайс листа, сформированный модулем экспорта можно скачать по этой ссылке: https://fabrika-sveta.com/upload/price_fabrika_sveta/price_gauss_fabrika_sveta.xlsx

Возможно вас ещё заинтересует модуль обмена сайта Битрикс с 1С о котором я рассказывал ранее от разработчика этого модуля обмена данными.


 Источник: KDV.su  

 Климов Дмитрий

Как импортировать файл Excel в PHPMyAdmin?

Хотите вывести тестирование программного обеспечения и автоматизацию на новый уровень?
Поговорим об ускорителях процессов ИИ

Советы по разработке программного обеспечения и контролю качества

Ниже приведены шаги, которые можно выполнить, чтобы импортировать Excel в PHPMyAdmin:

  1. Откройте файл Excel, который необходимо импортировать.
    • Примечание. Если в файле несколько рабочих листов, необходимо создать отдельные файлы . csv, которые будут выполняться в PHPMyAdmin.
    • Пользователь не сможет импортировать документ Excel, содержащий несколько рабочих листов.
  2. После открытия рабочего листа перейдите в меню «Файл» и выберите «Сохранить как».
    • В меню «Форматирование» выберите параметр «Значения, разделенные запятыми (.csv)».
    • Отображается приглашение Сохранить как .csv. Нажмите «ОК» и выберите путь для сохранения документа.
    • Вы должны создать отдельные файлы CSV для каждого рабочего листа в документе Excel.
  3. Теперь перейдите по URL-адресу PHPMyAdmin в браузере и создайте новую базу данных.
    • Создайте таблицы для базы данных в соответствии с требованиями.
    • В поле «Создать новую таблицу в базе данных (имя, которое вы дали базе данных)» укажите имя новой таблицы и количество полей для создаваемой таблицы.
    • Примечание. Количество полей должно совпадать с количеством столбцов на одном рабочем листе (это файл, созданный пользователем в виде CSV-файла для рабочего листа).
    • После того, как пользователь введет соответствующие значения, выберите «Перейти».
    • Теперь пользователь должен вручную создать имя поля для таблицы. Имя поля должно соответствовать имени столбца рабочего листа.
  4. Наконец, выберите созданную пользователем таблицу и щелкните вкладку «Импорт».
    • Выберите файл .csv, созданный для импорта в эту таблицу.

Заявление об отказе от ответственности

Эта публикация предназначена только для информационных целей, и никакие содержащиеся в ней сведения не должны рассматриваться как юридические консультации. Мы категорически отказываемся от каких-либо гарантий или ответственности за ущерб, связанный с этой информацией, и рекомендуем вам проконсультироваться с юрисконсультом относительно ваших конкретных потребностей. Мы не берем на себя никаких обязательств по обновлению ранее размещенных материалов.

Категории

Написано экспертами по обеспечению качества

Блог QASource для руководителей и инженеров, в котором рассказывается о стратегиях, методологиях и новых идеях обеспечения качества для информирования и помощи в эффективном выпуске качественных продуктов, веб-сайтов и приложений.

Подпишитесь на нас

Интересуетесь аутсорсингом?

Мы предоставляем клиентам специальные группы инженеров по качеству для оффшорных платформ, в которых работают высококвалифицированные специалисты, которые работают рука об руку с командами разработчиков клиентов для создания тщательно протестированного кода.

Запланируйте с нами ни к чему не обязывающий звонок, чтобы обсудить ваши потребности и узнать, подходит ли аутсорсинг для вашей компании.

30-минутная бесплатная консультация

Excel файл на php? — Начинающие — Изучение PHP

jeffd2651

#1

В настоящее время я борюсь с проблемой, которая у меня есть, и ищу решение.

У меня есть небольшая база данных в Caspio… но их синтаксис полностью отличается от Excel, и я не могу в этом разобраться

Итак, мне интересно, есть ли способ преобразовать рабочий лист Excel в веб-страницу php с работающими функциями Excel (чтобы я мог загрузить страницу на свой веб-сайт для онлайн-ввода и т. д.) ??? Заранее спасибо

JimL

#2

В чем проблема? Вы хотите сделать лист Excel доступным через Интернет для редактирования несколькими людьми?

Если да, то лучше использовать для этого подходящее решение. Я думаю, что Microsoft Teams бесплатна для такого использования. Но документы Google, OnlyOffice и т. д. также позволяют это сделать.

Джеффд2651

#3

Приветствую вас,
Большое спасибо, что нашли время и потрудились написать комментарий. Я посмотрел на MS Teams, и он действительно не совсем то, что нам нужно.
Я нашел несколько многообещающих сценариев. Это сценарии загрузки файлов, но все они, похоже, подразумевают, что они обрабатывают только файлы изображений.
Изучив все варианты, идеальным был бы сценарий загрузки файлов, который будет обрабатывать файлы .html и загружать их в каталог, где он будет переопределять существующий файл с таким же именем.
Проблема в том, что я целыми днями рылся в интернете, но так и не смог найти подходящий скрипт.
Еще раз спасибо за интерес

JimL

#4

Если вы напишете, что вы на самом деле пытаетесь сделать, помочь будет намного проще.

В первом сообщении вы спрашиваете, как преобразовать лист Excel в веб-страницу с функциями Excel для онлайн-ввода. во втором посте вы просто ищете скрипт загрузки для html-файлов…?

Джеффд2651

#5

Да, я изменил тактику, так как помимо этого сообщества помощь довольно скудна, если не считать очевидных саркастических комментариев от тех, кто знает лучше меня, и кто должен знать лучше, поэтому я искал решение собственными силами. . Первоначальная мысль о преобразовании листов Excel в веб-страницы оказалась неудачной, поскольку она не давала результатов, которые я искал, и мне посоветовали, что решение php может быть лучшим способом сделать то, что было нужный.
Преобразование листов Excel в html-страницу не сохраняет большую часть необходимой функциональности, поэтому я посмотрел на php в поисках решения.
Как относительный новичок в php, я искал скрипт для загрузки файла и перезаписи существующего. Тем не менее, все, что я могу найти, это скрипты, которые загружают файлы изображений (каждый, кажется, думает, что файлы изображений — это единственные типы файлов, которые кто-либо когда-либо захочет загружать), и я, конечно, не смог ничего найти, с точки зрения кода, который перезапишет существующий файл.

В любом случае спасибо за проявленный интерес…

JimL

#6

Джеффд2651:

Как относительный новичок в php, я искал скрипт для загрузки файла и перезаписи существующего.

Это должно сработать.
https://www.tutorialspoint.com/php/php_file_uploading.htm

Обратите внимание, что даже несмотря на то, что там написано $_FILES[‘image’], это не строго для загрузки изображений, это просто их имя выбрано для поля ввода в форме ниже. Если вы измените оба на «jimisawesome», это все равно будет работать.

Затем он проверяет расширение файла, теоретически вам это даже не нужно, но всегда полезно проверить, что вы получаете то, что ожидаете, просто измените его на расширения, которые вы принимаете.

Затем он проверяет определенный размер файла, что определенно просто для того, чтобы показать, как добавить ограничения на то, что приемлемо для загрузки. Этот вам точно не нужен.

Если вы затем проверите определение для move_uploaded_file, вы увидите, что он на самом деле перезаписывает любой существующий файл — как вы хотите

Предупреждение. Если целевой файл уже существует, он будет перезаписан.
https://www.php.net/manual/en/function.move-uploaded-file.php

Подобные вещи могут быть большим разочарованием для новых программистов, поскольку очень легко найти статью или руководство по конкретной проблеме, над которой они работают. Но когда вы преодолеете это и увидите, что можете адаптировать то, что вы найдете в Интернете, в соответствии с вашим случаем использования, перед вами откроется океан информации и помощи.


Причина, по которой я снова спрашиваю, в чем ваша настоящая проблема — это

Проблема XY — это коммуникационная проблема, возникающая в службе поддержки и подобных ситуациях, в которых реальная проблема, X , человека, обращающегося за помощью, скрыта, потому что вместо того, чтобы напрямую спросить о проблеме X , они спрашивают, как решить второстепенную проблему, Y , которая, по их мнению, позволит им решить проблему X . Однако решение проблемы Y часто не решает проблему X или является плохим способом ее решения, а затемнение реальной проблемы и введение потенциально странной вторичной проблемы может привести к тому, что человек, пытающийся помочь, ненужные трудности в общении и предложение плохих решений.
https://en.wikipedia.org/wiki/XY_проблема

Поскольку многие люди, отвечающие на технические вопросы в Интернете, будь то форумы, Facebook или переполнение стека, имеют некоторый опыт в этих вещах, справедливо задаться вопросом, действительно ли решение, которое вы пытаетесь закодировать, является лучшим.

Я все еще не уверен, чего вы на самом деле пытаетесь достичь, но я уверен, что я и другие здесь хотели бы предложить возможные решения, если вы еще раз попытаетесь объяснить, что вы хотите сделать с этим материалом excel / html. это все о.

Джеффд2651

#7

Большое спасибо. Это похоже на то, что я искал.
Хорошо, позвольте мне попытаться объяснить проблему.
У нас есть лист Excel, который автоматически сортирует серию результатов в гольфе в таблице лидеров. Он отлично работает, используя синтаксис «= НАИБОЛЬШИЙ ($ C4: $ N4,1)», чтобы установить позицию в таблице лидеров. Однако ни одно из решений по преобразованию Excel в html не работает настолько, насколько они не передают интерактивность… а используемая нами онлайн-база данных Caspio не поддерживает функциональность Excel, поэтому файл таблицы лидеров не будет работать.
Таким образом, было предложено продолжить использование листа Excel главной таблицы лидеров, а затем использовать функцию «Сохранить как…», веб-страницу… для создания представления веб-страницы листа Excel.
Так вот, ни один из комитетов не обладает техническими способностями, когда дело доходит до работы веб-сайта, поэтому я стараюсь сделать этот процесс как можно более надежным; поэтому, если я могу заставить этот скрипт работать, они могут манипулировать/обновлять лист Excel и выполнять функцию сохранения как в порядке, а затем, используя веб-страницу на сайте общества, они могут затем загрузить результирующую страницу, показывающую лист, без необходимости запуска использование ftp-клиентов и т. д.
Большинство программ/сайтов преобразования Excel чрезвычайно дороги, и кажется, что они не дают результатов, которые мы ищем, поскольку я провел несколько «испытаний» на разных системах… все они не способны передавать функциональность.
Я надеюсь, что это краткое объяснение, возможно, немного прояснило ситуацию LOL
Еще раз большое спасибо за ваш интерес и ответ.

ДжимЛ

#8

Счета по гольфу поступают от Каспио? Если это так, похоже, вы можете использовать их пользовательский интерфейс Swagger для получения (и добавления) данных. Если это та же онлайн-база данных, которую вы используете, я бы посоветовал просто отказаться от Excel и создать веб-сайт, на котором вы можете добавлять записи / просматривать таблицу лидеров, запрашивая базу данных напрямую.

Онлайн-справка Caspio

Пользовательский интерфейс Swagger — Онлайн-справка Caspio

Swagger UI — это популярный сторонний инструмент для разработчиков, позволяющий легко взаимодействовать и тестировать REST API Caspio Bridge с помощью визуального интерфейса. Вы можете использовать пользовательский интерфейс Swagger, чтобы опробовать API, прежде чем приступить к настройке своего приложения.

Расчетное время. время чтения: 1 минута

Не уверен, насколько вы зависимы от caspio, но я совершенно уверен, что с простой настройкой php/db будет проще разобраться, чем с интеграцией стороннего решения «онлайн-базы данных».

Джеффд2651

#9

Приветствую, спасибо за отзыв… однако, поскольку общество является некоммерческим и насчитывает всего около 100 ± активных членов, учетная запись Caspio является «бесплатной» версией с ограниченной функциональностью.
Кроме того, большая часть комитета по-прежнему использует карандаш и бумагу, не говоря уже о сотовых телефонах (если вы меня понимаете), и я изо всех сил борюсь за то, чтобы перетащить все это в 20-й, не говоря уже о 21-м веке LOL
Используя Excel почти на пределе своих передовых возможностей, и они настаивают на использовании подхода Excel и крайне неохотно приближаются к какому-либо облачному решению LOL. Мне потребовалось некоторое время, чтобы убедить их в полезности Caspio, даже в его форме… так что на данный момент, я думаю, это должен быть Excel, поскольку платная версия Caspio, даже в самой базовой платной версии, выходит за рамки финансовые возможности общества Еще раз спасибо за помощь.

ДжимЛ

#10

Я предполагаю, что кто-то (вы?) все равно берет свои оценочные карточки и вводит их в базу данных caspio?

Я, наверное, в любом случае задумался бы о создании веб-сайта для этого. Я также хотел бы изучить синтаксический анализ файлов Excel, чтобы они все еще могли передавать свои оценочные карточки в Excel, и вы могли бы просто загрузить их и позволить веб-сайту обрабатывать ввод данных.

Если caspio ограничивает ваши возможности, я бы просто перешел на решение php/mysql, вы можете получить его и запустить за очень небольшие деньги в кратчайшие сроки

Джеффд2651

#11

Спасибо. Все это очень логично, но совершенно не соответствует мировоззрению Комитета и тому, как они хотят, чтобы все шло.
Я уже 12 месяцев бьюсь головой о кирпичную стену и думаю, что найду высокое здание и сброшусь с него… символически говоря. Как только я разберусь с этим, я больше не буду иметь к этому никакого отношения… чем больше ты делаешь (даром), тем больше они хотят, но по-своему… что полностью противоречит технологии. Еще раз спасибо

Джеффд2651

#12

Извините, забыл упомянуть, что результаты вводятся вручную, потому что они должны быть представлены в Испанскую федерацию гольфа, и даже если бы мы могли, API для Caspio не будет отображать данные в соответствии с пожеланиями комитета… это немного похоже настоящий джентльменский клуб 18 века.