Конвертер XLSX в CSV

Перетащите книгу Excel и экспортируйте каждый лист как CSV — по отдельности или все вместе в .zip. Без загрузки.

Перетащите таблицу сюда или
  1. Перетащите XLSX (или XLS / XLSM / ODS) или нажмите «выбрать файл».
  2. Выберите лист в выпадающем списке.
  3. Нажмите «Преобразовать и скачать» для одного листа или «Все как .zip» для всей книги.
  4. Вывод — CSV в RFC 4180: UTF-8, через запятую, при необходимости — экранирование двойными кавычками.
Что это делает?

Читает таблицы Excel и OpenDocument через SheetJS (форк Apache-2.0) и выдаёт каждый лист как CSV через sheet_to_csv от SheetJS. Значения ячеек приводятся к тексту по нативному типу книги — числа остаются числами, даты рендерятся в формате книги, формулы используют свои кэшированные вычисленные значения. Графики, изображения и условное форматирование отбрасываются — CSV не может их представить.

Типичные ловушки

XLSX → CSV в основном механический процесс, но некоторые шаблоны дают неожиданный вывод.

  • Форматирование дат. Excel хранит даты как порядковые номера; отображаемый формат зависит от формата числа ячейки. CSV использует то, что выводит Excel — `2026-04-26`, `4/26/2026` или порядковый номер в зависимости от настройки ячейки. Чтобы принудительно использовать ISO 8601, измените формат ячейки в Excel перед экспортом.
  • Результаты формул vs. формулы. CSV не может представить формулы. Вывод использует кэшированное вычисленное значение каждой ячейки на момент последнего сохранения. Если книга редактировалась без повторного сохранения, кэшированные значения могут устареть.
  • Объединённые ячейки. Объединённые ячейки выдают значение в верхнем-левом углу объединения; остальные становятся пустыми. Это поведение по умолчанию SheetJS и соответствует ожиданиям большинства потребителей CSV.
  • Числа vs. текст. Excel хранит `00123` как число 123, если тип ячейки явно не Текст. CSV отражает базовый тип. Чтобы сохранить ведущие нули, отформатируйте ячейку как Текст в Excel перед экспортом.
  • Зашифрованный XLSX. SheetJS Community не расшифровывает XLSX, защищённые паролем. Откройте файл в Excel, снимите защиту, сохраните, затем перетащите снова сюда.
  • Очень большие книги. Книги свыше ~50 МБ могут заметно дольше парситься и нагружать память браузера. Подумайте о разбиении на меньшие файлы или используйте SheetJS в командной строке для больших задач.
Часто задаваемые вопросы

Почему первая конвертация медленная?

SheetJS — это ~190 КБ gzipped, загружается при первом выборе файла. Последующие конвертации в той же сессии переиспользуют закэшированный модуль — мгновенно.

Поддерживаются ли файлы XLS (legacy)?

Да — SheetJS Community парсит .xls (BIFF8), .xlsx, .xlsm и .ods. Зашифрованные варианты любого из них не поддерживаются.

Использует ли CSV десятичный разделитель моей локали?

Нет — вывод всегда RFC 4180 с `.` в качестве десятичной точки и `,` в качестве разделителя поля. Чтобы получить CSV в европейском стиле с разделителем `;`, постобработайте вывод.

Загружается ли моя книга?

Нет. Всё работает в вашем браузере — таблица парсится SheetJS на этой странице и не отправляется ни на какой сервер.

Как экспортируются формулы?

CSV не может представить формулы. Вывод использует кэшированное вычисленное значение каждой ячейки. Если нужен сам текст формулы, это другой экспорт — откройте файл в Excel и скопируйте столбцы с формулами отдельно.

Почему CSV точно не совпадает с тем, что я вижу в Excel?

Слой отображения Excel применяет числовое форматирование, условные правила и настройки локали поверх сырого значения. CSV — обычный текст, поэтому часть визуального стиля сознательно теряется. Содержимое ячейки сохраняется; внешний вид — нет.