Как разобрать файл Excel в JavaScript?
-
06-07-2019 - |
Вопрос
Я пытаюсь написать небольшой веб-инструмент, который берет файл Excel, анализирует его содержимое, а затем сравнивает данные с другим набором данных.Можно ли это легко сделать с помощью JavaScript?Есть ли библиотека JavaScript, которая делает это?
Решение
Как бы вы загрузили файл в JavaScript?
Кроме того, Excel является проприетарным форматом и достаточно сложным, чтобы серверные библиотеки имели многолетний опыт разработки (например, Apache POI ) пока еще не удалось на 100% правильно перепроектировать эти форматы Microsoft.
Поэтому я думаю, что ответ таков, что вы не можете.
Обновление: в чистом JavaScript.
Обновление 2: теперь можно загружать файлы в JavaScript: https://developer.mozilla.org/en-US/docs/DOM/FileReader
Другие советы
За последние четыре года произошло много достижений.HTML5 File API был принят основными поставщиками браузеров, и улучшения производительности фактически делают возможным анализ файлов Excel (как xls, так и xlsx) в браузере.
Мои записи в этом разделе:
Оба являются парсерами на чистом JS.
Чтобы сделать все в js, вам придется использовать ActiveX и, возможно, офисные веб-компоненты. Просто предложение, но вы, вероятно, не хотите идти по этому пути; это будет неэффективно и только IE / Win. Вам будет лучше с серверным решением.
Вам нужно будет использовать ActiveX (см. раздел W3C Schools по использованию AJAX) и зарегистрировать файл на хост-компьютерах Dataconnectors (только на компьютере, на котором размещен файл). В отличие от упомянутого ранее, этот метод не зависит от платформы Microsoft (для клиента в любом случае), и вам не нужно устанавливать компоненты Office.
Это можно сделать для большинства файлов данных, зарегистрированных в Windows, включая MDB, и позволяет вам иметь столько контроля, сколько вы хотите, так как вы можете назначать разные учетные записи Windows для разных целей.
Как я уже говорил, все это на стороне сервера и никак не влияет на клиента, кроме, возможно, получения учетных данных, действий и всего такого.
Этот метод использует JavaScript, SQL (нет, даже не MSSQL, только стандарт SQL) и требует только, чтобы на хост-компьютере работала ЛЮБАЯ платформа Microsoft NT.
Соединители данных Windows обеспечивают универсальный интерфейс для различных компонентов данных, так же как и DirectX для видеокарт и других периферийных устройств. Вы также можете использовать его для связи MDB (Microsoft Access) с сервером MySQL и подачи данных таким образом, что, как я считаю, даже проще, чем использование электронных таблиц XLS ... тем более, что вы можете импортировать XLS в MDB.
Вам действительно нужен файл Excel? Почему бы не использовать Excel для экспорта данных в CSV или XML и загрузки этого?
Формат файла Excel очень специфичен для реализации Excel. Если вам просто нужны данные, используйте формат файла, который просто содержит данные.