Хотя… не изобрел, а собрал. Я собрал свой MVP Simple Data Editor, так как хотел простое и миниатюрное решение, работающее везде, где есть браузер и чтобы при этом не происходило никаких обращений во вне. Но не только. Основная идея в реализации возможности представления одной и той же информации, но в разных форматах: текстовом, табличном ну а в перспективе и в графическом.

Описание

Постановка задачи была простой: загрузка одного или нескольких csv‑файлов (при выборе нескольких файлов происходит склейка содержимого), отображение содержимого как в текстовом виде, так и в табличной форме. Возможность простого редактирования и сохранения.

Проект написан на Javascript/Typescript на базе фреймворка Vue.js. В качестве редактора текста был выбран MonacoEditor, думаю большинству из Вас он знаком по VSCode. Достаточно нажать «F1» на вкладке чтобы увидеть знакомое меню.

В качестве компонента для табличного представления использовал HandsOnTable.

В части кода оба представления разнесены по отдельным файлам. Отдельная логика также вынесена в файлы в папке./libs

Особенности

Ньюансы связаны со спецификой работы браузеров. Вы можете через браузер открыть локальный файл, но сохранить изменения в него же — нет.

Поэтому:

  1. При редактировании данных в текстовом виде — отредактированный текст сохранятся в local storage браузера. И если вы, к примеру, обновляете страницу — то на экране отобразится уже не содержимое файлов, а отредактированный текст.

  2. Сохранение файла. Здесь сохранение == загрузка нового файла.

Установка

Вот код проекта на ГитХаб

git clone https://github.com/BazDen/SimpleDataEditor.git
pnpm install
pnpm dev
pnpm build

Использование ИИ

Использую, но в части подготовки отдельных участков кода, в частности в данном проекте ныне суверенная ИИ с приятным женским именем помогла мне подготовить функции чтения одного/нескольких файлов.

Ограничения

Обращаю ваше внимание — это MVP — минимальный жизнеспособный продукт. В этой ситуации проще описывать не ограничения, а функционал, что я собственно и сделал выше. Но есть неявные ограничения, которые важно знать тем отважным энтузиастам, кто возьмет мой код для своих проектов

  1. В табличной части ограниченное количество колонок, только от A до Z

  2. Редактируемая информация в текстовом виде хранится в local storage браузера, у которого есть свои ограничения на размер

  3. При загрузке csv файла, только символ «;» является разделителем.

Дальнейшее развитие

Планирую развивать данный MVP в первую очередь как общедоступный шаблон для других проектов. Не испытываю иллюзий в части того, что в части редактирования текста/таблиц данное решение будет лучше существующих текстовых или табличных редакторов. Поэтому шаблон, который будет дорабатываться по мере сил и наличию свободного времени.

Комментарии (1)


  1. vmkazakoff
    21.09.2026 16:48

    1) нахуа, вам редакторов которые работают в браузере оффлайн мало было?

    2) браузер может как открыть, так и сохранить файл, если это его "родной" формат (текст). CSV это текст, браузер может его сохранить, ИИ вам напишет этот код за 10 минут

    3) все ещё не понимаю нахуа )))

    Upd: то есть следует попросить проведение типа "после правок я хочу чтобы исходный csv файл обновился на диске без меню сохранения файла" - можно и от локалстораджа избавиться,о но лучше не стоит, править как сейчас, но добавить кнопку сохранения