Excel для разработчиков
Открывайте миллионы строк за секунды. Локально, молниеносно, удобно.
Высокопроизводительный веб-интерфейс для анализа наборов данных с локальным выполнением. Мгновенно просматривайте и фильтруйте файлы CSV, Parquet, Excel и JSON, используя мощь VisiData.
English • 简体中文 • Español • 日本語 • Русский
Возможности • Установка • Использование • Архитектура • Вклад в проект
Анализ данных не должен означать написание шаблонного кода на Pandas или долгую загрузку тяжеловесных табличных процессоров вроде Excel. VisiLens — это современный вьюер CSV и эксплорер Parquet, сочетающий raw-скорость VisiData с легковесным веб-интерфейсом.
- ⚡️ 1 млн строк за 2 секунды: Работает на высокооптимизированном движке VisiData.
- 🔒 Полностью локально: Ваши данные никогда не покидают ваш компьютер. Никаких загрузок в облако.
- 🛠 Zero config: CLI-ориентированный workflow: передали данные, проанализировали, вернулись к коду.
- 🔌 Поддержка 50+ форматов: CSV, TSV, JSON, Parquet, Excel, SQLite и более 50 других форматов.
- Мгновенная визуализация данных: Просто запустите
visilens data.csv, чтобы мгновенно визуализировать большие наборы данных. - Сортировка и фильтрация на стороне бэкенда: Выполняйте сложные запросы к миллионам строк, используя движок VisiData.
- Легкая таблица данных: Виртуализированная таблица на основе React для плавной прокрутки.
- Нулевая конфигурация: Не требуется настройка базы данных. Работает как автономный вьюер CSV/Parquet.
VisiLens использует загрузчики VisiData для поддержки широкого спектра форматов «из коробки»:
- Табличные:
.csv,.tsv,.xlsx(Excel),.parquet - Структурированные:
.json,.jsonl,.yaml - Базы данных:
.sqlite,.db - Код:
.pcap(Wireshark),.xml,.htmlтаблицы
Производительность — наш приоритет. Вот как VisiLens сравнивается при открытии тестового набора данных CSV из 1 000 000 строк на стандартном MacBook Air (M2).
| Инструмент | Время загрузки (1M строк) | Потребление памяти | Интерактивная сортировка |
|---|---|---|---|
| VisiLens | ~1.7с | Минимальное (< 50MB всего) | Мгновенно (Бэкенд: < 0.4с) |
| Excel | > 30с (Часто падает) | Высокое (Блокирует RAM) | Медленно/Не отвечает |
| GUI на основе Pandas | > 15с (Холодный старт) | Высокое (Весь DF в RAM) | Вяло (Без виртуализации) |
| Jupyter (print df) | Быстро | Среднее | Статический текст |
Тестовый набор данных: 1M строк, 3 столбца (смешанные типы). Результаты получены на MacBook Air M2 в реальных условиях разработки.
VisiLens доступен как пакет Python.
pip install visilensПримечание: VisiLens требует Python 3.10 или выше.
Основной способ использования VisiLens — через командную строку.
# Открыть CSV файл
visilens data.csv
# Открыть Parquet файл
visilens large-dataset.parquet
# Открыть Excel файл
visilens spreadsheet.xlsx
# Запустить без автоматического открытия браузера
visilens data.json --no-browser
# Указать пользовательский порт
visilens data.csv --port 9000После запуска VisiLens открывается в вашем браузере по умолчанию (обычно http://localhost:8000).
- Просмотр данных: Эффективно прокручивайте ваш набор данных.
- Сортировка: Нажимайте на заголовки столбцов для сортировки по возрастанию/убыванию.
- Фильтрация: Используйте поля ввода фильтра для поиска внутри столбцов.
- Загрузка новых данных: (Скоро) Перетаскивайте файлы прямо в окно.
VisiLens построен на надежном современном стеке, разработанном для производительности:
- Бэкенд: Сервер FastAPI связывает VisiData и браузер.
- Коммуникация: WebSockets передают срезы данных по запросу.
- Фронтенд: Сетка React рендерит только то, что вы видите.
Мы активно работаем над тем, чтобы сделать VisiLens идеальным локальным помощником по данным.
- v0.1: Основной движок, виртуальная прокрутка, сортировка, фильтрация.
- Интеграция с Jupyter: Запуск VisiLens прямо из ячейки ноутбука (
visilens.view(df)). - Загрузка файлов перетаскиванием
- Графики: Быстрые гистограммы и диаграммы рассеяния через Vega-Lite.
- Редактирование: Редактирование ячеек и сохранение изменений обратно в CSV/Parquet.
- Поддержка SQL: Прямое подключение к SQLite/Postgres/DuckDB.
Хотите поучаствовать в разработке? Отлично! Вот как настроить среду разработки.
- Python 3.10+
- Node.js 18+
- npm или pnpm
-
Клонировать репозиторий
git clone https://github.com/PStarH/VisiLens.git cd VisiLens -
Настройка бэкенда
# Создать виртуальное окружение python -m venv .venv source .venv/bin/activate # или .venv\Scripts\activate в Windows # Установить зависимости pip install -e ".[dev]"
-
Настройка фронтенда
cd frontend npm install -
Запуск локально
Терминал 1 (Бэкенд):
uvicorn backend.main:app --reload --port 8000Терминал 2 (Фронтенд):
cd frontend
npm run dev- Сборка ассетов фронтенда (опционально)
Если вы предпочитаете запускать только Python CLI (без отдельного сервера разработки Vite), вы можете собрать фронтенд один раз:
cd frontend
npm run buildЭто создаст производственный бандл в frontend/dist/, который копируется в vdweb/static/ для релизов. Конечные пользователи просто запускают:
visilens path/to/data.csv- Пакет Python (
vdweb/): Это устанавливаемый пакет, публикуемый в PyPI. Точки входа CLIvisilens/visilensобе разрешаются вvisilens.cli:main, как настроено вpyproject.toml. - Бэкенд для разработки (
backend/): Отдельное приложение FastAPI, используемое только для локальной разработки (uvicorn backend.main:app). Оно зеркалирует поведение упакованного бэкенда, но не является тем, что пользователи импортируют при установкеvisilens. - Основная логика: Слой доступа к данным на базе VisiData находится в
vdweb/core.py(и зеркалируется вbackend/core.pyдля приложения разработки). Если вы хотите изменить способ загрузки/сортировки/фильтрации данных, начните здесь.
- Редактируйте бэкенд / основную логику в
vdweb/(и обновляйтеbackend/, если необходимо для паритета разработки). - Запускайте бэкенд разработки + фронтенд локально, как описано в Разработка.
- Если вы меняете приложение React и хотите, чтобы эти изменения были отправлены, запустите
npm run buildвfrontend/, чтобы бандл, который будет скопирован вvdweb/static/, был актуальным.
Этот проект лицензирован под лицензией MIT - см. файл LICENSE для подробностей.
Этот README был переведен ИИ и не был проверен. Не стесняйтесь отправлять PR для его улучшения.

