Чтение данных Excel с помощью JQuery
Я хотел бы знать, как читать данные из файла MS Excel 2003 с несколькими рабочими таблицами, используя ничего, но jquery. Я прочитал несколько решений для PHP/JQuery, ActiveX и т.д., Но я хотел бы сделать это с помощью JQuery ONLY. Любая идея о том, как это может работать?
Я нашел http://plugins.jquery.com/project/csv2table, и это делает работу почти идеально, за исключением того, что мне приходится разбивать каждый лист на CSV файл. Я хотел бы отбросить этот шаг и прочитать его непосредственно из файла Excel. Заранее благодарю вас за помощь!
BTW - я работаю в FireFox 4 и не нуждаюсь в поддержке кросс-браузера.
Ответы
Ответ 1
Веб-компоненты Office предоставляют api для Excel документов через javascript (или vb). Они плохо документированы, но для приложений типа intranet они могут выполнять свою работу. Я использовал их для функции сводной таблицы в IE6 и не знаю, будет ли она работать с Firefox.
http://en.wikipedia.org/wiki/Office_Web_Components
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=beb5d477-2100-4586-a13c-50e56f101720&DisplayLang=en
Ответ 2
На самом деле это возможно без OWC и таких экзотических дополнений, но потребуется ручная работа.
Другое дело - это возможно только на локальной машине - не ожидайте, что ваш рабочий лист будет действовать как веб-сервер. Другая возможность - настроить его на сетевой ресурс, но я не уверен, как все это будет работать в изолированной программной среде.
EDIT: Я знаю, что вопрос касался формата Excel 2003. Тем не менее, есть еще запросы Google о такой же функциональности, и сегодня люди используют MS Office версии 2010/2013. Поэтому я считаю, что ответ может быть полезен для читателя.
Итак, вот он:
- Используя zip.js, вы можете открывать сжатые файлы. Это означает, что вы можете открывать файлы MS Office, начиная с Office 2007 (.docx,.xlsx и т.д.). Старые офисные файлы имеют настраиваемый формат, и вы не можете читать их как zipped файлы.
- После открытия файла доступна иерархическая структура папок с различными файлами в нем. Сами данные находятся в
/xl/worksheets/[worksheet name].xml
и /xl/sharedStrings.xml
, что означает, что вам придется выкапывать его с помощью синтаксического анализатора XML и впоследствии коррелировать.
- К счастью, XML-парсер доступен в jQuery:
$.parseXML('...')
Удачи;)
Ответ 3
Я понимаю, что этот вопрос старый, но у меня есть базовый парсер, который поддерживает большую часть того, что вы просите: http://oss.sheetjs.com/js-xls/
Ответ 4
Существует несколько инструментов (библиотек) для nodeJS, которые вы можете найти на веб-сайте npm.
Там один называется excel, который читает файлы xlsx, и там один офис для большинства офисных файлов ms.
Теперь, поскольку все это Javascript в любом случае, вы должны иметь возможность загрузить и проверить источник, чтобы найти способ его интеграции на стороне клиента.
Надеюсь, что поможет
Ответ 5
Преобразуйте excel в CSV файл, чтобы прочитать его из JQuery. использовать плагин JQuery CSV2Table
<div id="view1"></div>
<script type="text/javascript">
$(function(){
$('#view1').csv2table('Path/Anil.csv');
});
</script>