none
Как получить данные из выделенной области xlsx файла путем rest api? RRS feed

  • Вопрос

  • Добрый день. Встала передо мной задача - предоставить возможность пользователю загрузить на нашем сайте файл xlsx, а затем получить данные из тех ячеек, которые он выделит. Т.е. сам по себе пользовательский интерфейс excel не нужен, нужна только возможность выделять некоторую область в файле и получать данные из этой области. PhpExcel такой возможности не предоставляет, а т.к. веб сервер у нас apache, то и работать с com объектами не получится. Есть ли какой нить инструментарий? Например, я знаю, что sharepoint предоставляет возможность работать с разными документами онлайн, но есть ли у него rest api и можно ли как то расширять его api самостоятельно? Заранее спасибо.
    25 февраля 2015 г. 9:09

Ответы

Все ответы

  • Вы можете ипользовать Open Xml API, чтобы парсить xlsx.


    [custom.development]

    25 февраля 2015 г. 10:12
  • Мне нужно не просто парсить весь файл, мне нужно чтобы пользователь выбрал область, которую нужно парсить, ибо структура этого файл каждый раз может быть разной...
    25 февраля 2015 г. 10:51
  • если сам файл не нужен,  то может подойдет список, который создается на основе этого файла (ссылка).
    В табличном представлении там нет никакой принципиально разницы, и вот уже сним можно работать (ссылка)



    • Изменено Alexander Surbashev 25 февраля 2015 г. 11:07 добавил ссылку на Lists and list items REST API
    25 февраля 2015 г. 10:59
  • Ага, значит все таки sharepoint. Уже легче) Он ведь предоставляет графический UI для работы с xlsx онлайн, верно и апи?
    25 февраля 2015 г. 11:10
  • Есть, это называется office web apps - позволяте работать в файлами офиса - в браузере.

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

    25 февраля 2015 г. 11:57
  • Ага я понял, просто структура файла может быть любой, значит, после загрузки табличных данных на сервер, так или иначе нужно пользователю выбрать нужные ячейки(данные) именно для этого шага, потому, как на следующем шаге работы с файлом(данными), ему необходимо будет выделить другую часть данных. А зачем изобретать какой то свой интерфейс, когда он уже предоставляется? Надо лишь передать файл на сервер, который его обработает и пришлет мне обратно нужные данные, выбранные пользователем...лично я так себе вижу схему работы.
    25 февраля 2015 г. 12:06
  • А почему бы пользователю самому не подготовить файл к какому-то виду (раз изначально он (файл) может быть любой стуктуры и пользователь умеет пользоваться excel).
    Ведь можно пользователю сказать - откройте excel (если нет на локальном пк, то можете использовать excel online), выберете область и сделайте то-то и то-то, после чего к вам уже пойдут какие-либо данные.
    Ещё вариант - сделать какой-то шаблон, который пользователь должен заполнить исходя из своего xlsx файла.
    А вы уже будете брать данные из этого шаблона.

    Вариант, который предложил Alexander, на сколько я понимаю, не подойдёт для файла с любой структурой.

    p.s.: это как с распознованием букв, можно "учить" машину, а можно научить пользователя писать буквы определённым образом, чтобы распознование было правильным ;)

    [custom.development]

    25 февраля 2015 г. 12:22
  • сама логика работы для меня не совсем прозрача, но в ваших словах есть смысл.
    Просто экспортируя из файла данные на портал в виде списка (таблицы данных)  получаете из самого файла с данными полноценное приложение, с огромными возможностями, которые в свою очерель можете по всякому использвоать для выполняния поставленых задач
    25 февраля 2015 г. 12:29
  • В том то и смысл всего этого действа, чтоб максимально облегчить и упростить пользователю работу с системой(сайтом). На сайте будет достаточно много шагов и чтоб упростить задачу для пользователя и сократить время на обработку данных - быстрее, а порой и проще, все сделать самому. И здесь встает вопрос: изобретать велосипед с кривыми колесами или воспользоваться готовым сервисом, доработав под него апи. К тому же, таково требование заказчика. Заказчик вообще хочет оптическое распознавание, чтоб даже выделять ничего не нужно было, но на практике такое распознавание работает слишком криво...
    25 февраля 2015 г. 12:30
  • Тогдя я бы посоветовал сделать вам App for Office (excel).
    Пользователь выберет какие-то данные (или поместит их в определённые ячейки - тут уж как вы захотите).
    Затем в app нажмёт кнопку Send data. И выбранные данные через свой app вы уже отправите куда захотите (а заодное, если необходимо и сам документ). 
    App можно устанавливать и на Excel Online.

    [custom.development]

    25 февраля 2015 г. 12:41
  • Спасибо, похоже это именно то, что надо) Буду втыкать)
    25 февраля 2015 г. 12:59