Дополнительно
Как экспортировать таблицы в Excel с веб-страницы
Как я могу экспортировать таблицы в Excel с веб-страницы. Я хочу, чтобы экспорт содержал все форматирование и цвета.
96
14
Бесспорно, самый чистый, легкий экспорт из таблиц в Excel библиотека jQuery объекты DataTable плагин инструменты стол. Вы получите сетку, которая сортирует, фильтрует, заказов, страниц и данных, и с помощью нескольких дополнительных строк кода и два небольших файлов в комплекте, вы получаете экспорт в Excel, PDF-файл, CSV-файл, в буфер обмена и на принтер.
Это весь код, который's требовало:
Таким образом, быстрое развертывание, отсутствие ограничений браузера, на стороне сервера не требуется язык, и чаще всего очень легко понять. Это'ы в выигрыше. Единственное, у него есть ограничения, хотя, строго форматирование колонок.
Если форматирование и цвета-абсолютный "скатертью дорожка", единственный 100% Надежный, кросс-браузер способ я'вэ нашел, чтобы использовать серверный язык, чтобы обработать необходимые файлы Excel из вашего кода. Мое решение выбора PHPExcel это только один я'вэ нашел до сих пор, что положительно занимается экспортом с форматированием в современной версии Excel из любого браузера, когда вы даете ему ничего, кроме HTML-кода. Позвольте мне прояснить, хотя, это'ы наверняка не так легко, как первого раствора, а также немного пожирателем ресурсов. Однако, с другой стороны, он также может выводить непосредственно в PDF. И, как только вы получите его настроить, он просто работает каждый раз.
Обновление - 15 сентября 2016: TableTools было прекращено в пользу нового плагина под названием "кнопки, что" Эти инструменты выполняют те же функции, что старый TableTools расширения, но гораздо проще установить и они делают использование HTML5 загрузки для современных браузерах, с возможностью отката к первоначальному скачать Flash для браузеров, которые Дон'т поддерживать стандарт HTML5. Как видно из многих комментариев, так как я разместил этот ответ в 2011 году, главная слабость TableTools была решена. Я все еще могу'т рекомендовать объекты DataTable достаточно для обработки больших объемов данных просто, как для разработчика и пользователя.
Давным-давно, я обнаружил, что Excel будет открыть HTML-файл с таблицей, если мы отправим его с типом контента Excel. Рассмотреть вышеуказанный документ:
Я побежал следующий букмарклет на это:
и в самом деле я получил его для скачивания как файл Excel. ** Однако я не получил ожидаемый результат - файл был открыт в OpenOffice.org писатель. То есть моя проблема: я не владею Excel в эту машину, поэтому я не могу попробовать его лучше. Кроме того, этот трюк работал более или менее шести лет назад со старыми браузерами и старинной версии MS офиса, поэтому я не могу сказать, если он будет сегодня работать.
В любом случае, в указанном выше документе я добавил кнопку, что бы скачать весь документ в формате Excel, в теории:
Сохраните его в файл и нажать на кнопку. Я'д love, чтобы знать, если он работал или нет, поэтому я прошу вас комментировать даже сказать, что он не работает.
Можно использовать старый Excel 2003 в формате XML (перед функция OpenXML), чтобы создать строку, которая содержит нужный XML, то на стороне клиента можно использовать данные URI, чтобы открыть файл с помощью элемента xsl тип MIME, или отправить файл с клиента помощью Excel файл типа "По материалам-тип: application/vnd в.в MS-Excel с" от серверной стороне.
окна.открыть('данных:приложение/донгов.в MS-Excel, а'+лист); &ЛТ;/скрипт&ГТ; </код> </пред>
Стоит отметить, что старые браузеры не поддерживают схемы URI данных, поэтому вам может понадобиться, чтобы произвести файл сервер для тех браузеров, которые не поддерживают его.
Вам также может понадобиться, чтобы выполнить base64 кодирования данных URI содержимого, что может потребовать JS библиотеку, а также при добавлении строки ';в base64' после того, как тип MIME данных Ури.
Excel имеет малоизвестную особенность под названием "запросов" и которые позволяют получить данные практически из любого веб-страницы без дополнительного программирования.
Веб-запросов в основном выполняет HTTP-запрос непосредственно в Excel и копирует некоторые или все полученные сведения (а при необходимости форматирования) на лист.
После того, как вы'вэ определенными веб-запрос, вы можете обновить его в любое время, даже не выходя из Excel. Так что вы Дон'т придется на самом деле "на экспорт" и данных и сохранить его в файл - вы'д, а обновить данные как из базы данных.
Вы даже можете использовать параметры URL, имея в Excel запросит у вас определенные критерии фильтрации и т. д...
Однако минусов я'вэ заметил до сих пор:
Здесь вопрос о том, как создать веб-запросов в Excel. Это ссылки на Майкрософт поможет сайт о том, как-получить внешние данные из веб-страницы
Это php, но вы можете изменить его на javascript:
Во-первых, я бы не рекомендую попробовать экспорт в HTML и надеются, что пользователь'ы экземпляре Excel поднимает его вверх. Мой опыт, что это решение чревато проблемами, в том числе несовместимости с клиентами Macintosh и бросая сообщение об ошибке для пользователя, что файл не указанного формата. Самые пуленепробиваемые, удобные решения на стороне сервера, где вы используете библиотеку для создания актуального файл Excel и отправить обратно пользователю. Следующий лучшим решением и более универсальным решением будет использование открытом формате XML. Я'вэ бежать в некоторых редких проблем с совместимостью со старыми версиями Excel, но в целом это должно дать вам решение, которое будет работать на любой версии Excel, включая компьютеры Mac.
Открыть XML
Мозилла до сих пор поддерживают базы 64 Урис. Это позволяет динамически составить двоичного содержимого с помощью JavaScript:
если файл Excel не очень навороченный (без схем, формул, макросов) можно порыться в формате и сочинять байт для файла, а затем закодировать их в base64 и положить в рот
см https://developer.mozilla.org/en/data_URIs
Этот код только для IE, поэтому он полезен только в ситуациях, когда вы знаете, все ваши пользователи будут использовать IE (как, например, в некоторых корпоративных средах.)
На самом деле это более просто, чем вы думаете: "Просто" скопируйте HTML-таблицу (то есть HTML-код таблицы) в буфер обмена. Excel знает, как декодировать HTML-таблицы; он даже попытается сохранить атрибуты.
Самое сложное - это "скопировать таблицу в буфер обмена", поскольку не существует стандартного способа доступа к буферу обмена из JavaScript. См. эту статью в блоге: Доступ к системному буферу обмена с помощью JavaScript - Святой Грааль?.
Теперь все, что вам нужно, это таблица в формате HTML. Я предлагаю jQuery и метод html().
Предположения:
данный url
преобразование должно быть сделано на стороне клиента
системы Windows, Mac и Linux
Решение для Windows:
Python код, который открывает окно IE и имеет доступ к нему: переменная url-адрес содержит адрес URL ('http://')
Примечание: если страница недоступна напрямую, но и логин, вам придется справиться с этим с помощью ввода данных форма и эмуляции действий пользователя в Python
вот пример
таким же образом для извлечения данных из веб-страницы. Позвольте'говорят, что элемент с id 'EL1 начинает' содержать данные. получить текст элемента к переменной
затем, когда данные в переменную в Python, вы можете открыть окно Excel в схожей манере с использованием Python:
Раствор для Mac:
только совет: использование AppleScript - это простой и подобные API, как win32com.клиента отправка
Решение для Linux:
Ява.авт.Робот может работать, для этого он имеет кнопку, нажатие (горячие клавиши можно использовать), но нет API для Linux, что мне известно о том, что может работать как простой как помощью AppleScript
простой поиск Google оказался этот:
если вы можете'т сделать это, он дает альтернативный "и перетащите" по методу:
http://www.mrkent.com/tools/converter/
И теперь есть способ лучше.
Инструкции OpenXML SDK для JavaScript.
https://openxmlsdkjs.codeplex.com/
Практически существует два способа сделать это автоматически, в то время как только одно решение может быть использовано во всех браузерах. Прежде всего, для создания листа excel следует использовать спецификацию open xml. Существуют бесплатные плагины от Microsoft, которые делают этот формат доступным и для старых версий офиса. Открытый xml является стандартом, начиная с Office 2007. Очевидны два способа: на стороне сервера или на стороне клиента.
Реализация на стороне клиента использует новый стандарт CSS, который позволяет хранить данные, а не только URL-адрес к ним. Это отличный подход, так как вам не нужен вызов сервера, только данные и немного javascript. Недостатком является то, что microsoft не поддерживает все его части в текущих версиях IE (я не знаю о IE9). Microsoft ограничивает данные изображением, но нам нужен документ. В firefox это работает вполне нормально. Для меня IE был убийственной точкой.
Другой путь - использовать реализацию на стороне сервера. Должно быть много реализаций открытого XML для всех языков. Вам просто нужно выбрать одну из них. В большинстве случаев это будет самый простой способ модифицировать Viewmodel, чтобы в результате получился документ, но наверняка вы можете отправить все данные с клиентской стороны обратно на сервер и сделать то же самое.