При попытке сохранить таблицу Microsoft Excel в формате .txt пользователи часто сталкиваются с проблемой потери форматирования: данные слипаются в одну колонку, разделители заменяются на нечитаемые символы, а кириллические буквы превращаются в "кракозябры". Это происходит из-за неверно выбранной кодировки (ANSI вместо UTF-8) или неправильного разделителя полей (табуляция vs запятая). В 90% случаев проблема решается настройкой параметров экспорта ещё до сохранения файла.
В отличие от конвертации в .csv, где структуру таблицы сохраняют запятые, текстовый формат .txt требует ручного указания разделителя. Если в вашем файле Excel используются формулы, объединённые ячейки или специальные символы (например, знаки валюты), их придётся предварительно преобразовать в значения — иначе в .txt они отобразятся как ошибки #ЗНАЧ!. Ниже разберём все рабочие способы экспорта, включая обработку больших файлов (100+ тыс. строк) и автоматизацию через Power Query.
1. Стандартный экспорт через "Сохранить как"
Самый быстрый метод — использование встроенной функции Файл → Сохранить как. Он подходит для таблиц до 50 тыс. строк, но требует ручной настройки разделителей. Алгоритм:
- Откройте файл в Excel (версии 2010–2023 или Microsoft 365).
- Перейдите в
Файл → Сохранить как → Обзор. - В выпадающем меню "Тип файла" выберите
Текстовый файл (*.txt). - Нажмите
Сохранить— появится окно "Экспорт текстового файла".
Здесь критично выбрать:
- 🔹 Кодировку: для кириллицы —
UTF-8(если доступно) илиANSI (Windows-1251). - 🔹 Разделитель:
Табуляция(для импорта в базы данных) илиЗапятая(для.csv-подобных файлов). - 🔹 Формат ячеек: отметьте
Сохранять формат ячеек, если нужны ведущие нули (например, в артикулах00123).
⚠️ Внимание: Если в таблице есть многострочный текст (ячейки с переносами), при экспорте в.txtон будет обрезан до первой строки. Чтобы избежать потерь, предварительно замените переносы на символ|или другой разделитель черезCTRL+H.
Преобразовать формулы в значения (выделить ячейки → CTRL+C → ПКМ → "Значения")|Удалить объединённые ячейки (разъединить через Главная → Объединить и поместить в центре)|Заменить специальные символы (€, ¥, ©) на текстовые эквиваленты|Проверить максимальную длину строки (в .txt ограничение — 1024 символа на строку)
-->
2. Экспорт с помощью Power Query (для больших файлов)
Если таблица содержит более 100 тыс. строк или требуется автоматизация (например, еженедельный экспорт отчётов), используйте Power Query. Этот метод позволяет:
- 📊 Обрабатывать файлы до 1 млн строк без зависаний.
- 🔄 Настраивать разделители и кодировку гибко.
- 🛠️ Применять преобразования (замена текста, фильтрация) перед экспортом.
Пошаговая инструкция:
- Выделите данные →
Данные → Из таблицы/диапазона(в Excel 2016+). - В открывшемся Power Query нажмите
Главная → Закрыть и загрузить → Закрыть и загрузить в.... - Выберите
Только создать соединение. - Перейдите в
Данные → Получить данные → Запустить редактор Power Query. - В редакторе нажмите
Главная → Дополнительно → Параметры экспортаи выберитеТекстовый файл.
Преимущество метода: Power Query сохраняет иерархию данных (например, вложенные таблицы) и позволяет задать пользовательский разделитель (например, ; для европейского формата .csv).
3. Конвертация через VBA-скрипт (для автоматизации)
Для регулярного экспорта (например, ежемесячных отчётов) напишите макрос, который сохраняет данные в .txt с заданными параметрами. Пример кода для экспорта активного листа с разделителем-табуляцией и кодировкой UTF-8:
Sub ExportToTxt()
Dim ws As Worksheet
Dim txtPath As String
Dim fileNum As Integer
Set ws = ActiveSheet
txtPath = "C:\Export\" & ws.Name & ".txt" ' Путь к папке
' Создать файл с кодировкой UTF-8
fileNum = FreeFile()
Open txtPath For Output As #fileNum Access Write Shared
' Экспорт данных с разделителем табуляция
Dim rng As Range, cell As Range
For Each rng In ws.UsedRange.Rows
For Each cell In rng.Cells
Print #fileNum, cell.Value;
If cell.Column < ws.UsedRange.Columns.Count Then Print #fileNum, vbTab;
Next cell
Print #fileNum,
Next rng
Close #fileNum
MsgBox "Экспорт завершён: " & txtPath, vbInformation
End Sub
Чтобы запустить скрипт:
- Нажмите
ALT+F11для открытия редактора VBA. - Вставьте код в модуль (
Insert → Module). - Запустите макрос через
F5.
⚠️ Внимание: Макрос сохраняет только значения ячеек, игнорируя формулы, цвета и форматирование. Для экспорта формул предварительно преобразуйте их в текст через =ФОРМУЛТЕКСТ(A1).
4. Онлайн-конвертеры: плюсы и риски
Если нет возможности использовать Excel (например, на Mac с Numbers или в Linux), воспользуйтесь онлайн-сервисами:
- 🌐 Zamzar — поддерживает
.xlsxдо 50 МБ, сохраняет структуру. - 🌐 CloudConvert — позволяет выбрать разделитель и кодировку.
- 🌐 ConvertCSV — специализируется на текстовом формате.
Риски онлайн-конвертации:
- 🔒 Конфиденциальность: данные обрабатываются на сторонних серверах.
- 🚫 Ограничения: бесплатные версии обрезают файлы свыше 10–50 МБ.
- ⚠️ Потеря форматирования: объединённые ячейки и формулы не сохраняются.
Стандартный "Сохранить как"|Power Query|VBA-скрипты|Онлайн-конвертеры|Другой способ-->
5. Особенности экспорта для разных версий Excel
Функциональность экспорта в .txt отличается в зависимости от версии Excel:
| Версия Excel | Поддержка UTF-8 | Макс. строк при экспорте | Особенности |
|---|---|---|---|
| Excel 2010–2013 | ❌ (только ANSI) | 65 536 | Требуется ручная замена кодировки в Блокноте после экспорта. |
| Excel 2016–2019 | ✅ (UTF-8 в параметрах) | 104 857 | Поддержка Power Query для больших файлов. |
| Microsoft 365 | ✅ (UTF-8 по умолчанию) | 1 048 576 | Автоматическое определение разделителей. |
| Excel для Mac | ✅ | 104 857 | Ограничения на символы в путях файлов. |
В Excel 2010 и старше для экспорта в UTF-8 придётся использовать обходной путь:
- Сохраните файл в
.csvс разделителем-табуляцией. - Откройте его в Блокноте →
Файл → Сохранить как. - Выберите кодировку
UTF-8и замените расширение на.txt.
Как проверить кодировку готового TXT-файла?
Откройте файл в Блокноте → если кириллица отображается как "ÐапиÑал", значит кодировка ANSI. Пересохраните с UTF-8. Для проверки также можно использовать Notepad++ (меню "Кодировки").
6. Распространённые ошибки и их решения
Ошибки при конвертации Excel в .txt делятся на 3 категории: кодировка, разделители и структура данных. Разберём типичные проблемы:
🔴 Проблема: Кириллица отображается кракозябрами
Причина: Файл сохранён в кодировке ANSI, но открывается программой, ожидающей UTF-8 (например, Python-скриптом).
Решение:
- 🔧 Пересохраните файл с кодировкой
UTF-8(см. раздел 1). - 🔧 Используйте Notepad++ для конвертации:
Кодировки → Преобразовать в UTF-8 без BOM.
🔴 Проблема: Данные сливаются в одну колонку
Причина: Не указан разделитель или выбран неверный (например, Запятая вместо Табуляция).
Решение:
- 📌 При экспорте выберите
Табуляциякак разделитель. - 📌 Если данные уже экспортированы, замените разделители через Блокнот (
CTRL+H→ заменить запятую на табуляцию\t).
🔴 Проблема: Пропадают ведущие нули
Причина: Excel автоматически удаляет нули в числовых форматах (например, 00123 становится 123).
Решение:
- 🔢 Преобразуйте столбец в текстовый формат (
CTRL+1 → Текстовый). - 🔢 Добавьте апостроф перед числом (
'00123).
- Первым и последним строкам (часто обрезаются).
- Специальным символам (€, ¥, ©).
- Длинным строкам (могут обрываться).
-->
7. Альтернативные форматы: когда TXT не подходит
Формат .txt удобен для обмена данными между системами, но имеет ограничения:
- 🚫 Нет поддержки многострочного текста в ячейках.
- 🚫 Не сохраняет цвета, шрифты, формулы.
- 🚫 Плохо работает с иерархическими данными (например, сводные таблицы).
Рассмотрите альтернативы:
| Формат | Когда использовать | Преимущества |
|---|---|---|
.csv |
Импорт в базы данных, Google Sheets | Поддержка формул, меньший размер файла |
.json |
API, веб-приложения | Сохраняет структуру (вложенные объекты) |
.xml |
Обмен между корпоративными системами | Поддержка схем данных (XSD) |
Для конвертации в .csv или .json используйте те же методы, что и для .txt, но выбирайте соответствующий формат в меню Сохранить как. В Power Query доступен экспорт в .json через Файл → Экспортировать.
FAQ: Частые вопросы по экспорту Excel в TXT
Можно ли экспортировать в TXT только выделенный диапазон, а не весь лист?
Да. Выделите нужный диапазон → Копировать (CTRL+C) → создайте новый лист → Вставить как значения (CTRL+ALT+V → З) → экспортируйте новый лист.
Почему в итоговом TXT-файле вместо запятых отображаются точки с запятой?
Это зависит от региональных настроек Windows. В европейских версиях Excel разделителем по умолчанию является ;. Чтобы изменить его на ,, перед экспортом выполните:
- Откройте
Панель управления → Региональные стандарты → Дополнительные параметры. - В поле "Разделитель элементов списка" укажите
,. - Перезапустите Excel.
Как экспортировать данные с сохранением формул (а не значений)?
Формат .txt не поддерживает формулы. Альтернативы:
- Сохраните файл в
.xlsxи архивируйте его. - Экспортируйте формулы в текстовый вид через
=ФОРМУЛТЕКСТ(A1), затем сохраните как.txt.
Можно ли автоматизировать экспорт TXT для 100 файлов Excel?
Да, с помощью VBA или PowerShell. Пример скрипта для пакетной обработки:
# PowerShell-скрипт для конвертации всех XLSX в TXT в папке
Get-ChildItem "C:\Input\*.xlsx" | ForEach-Object {
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open($_.FullName)
$workbook.SaveAs($_.DirectoryName + "\" + $_.BaseName + ".txt", -4158) # -4158 = xlText
$workbook.Close()
$excel.Quit()
}
Скрипт сохраняет файлы с разделителем-табуляцией в кодировке ANSI. Для UTF-8 потребуется дополнительная обработка.
Как импортировать полученный TXT-файл обратно в Excel?
Используйте функцию Данные → Получить данные → Из файла → Из текстового файла. В мастере импорта:
- Выберите разделитель (табуляция/запятая).
- Укажите кодировку (UTF-8 или Windows-1251).
- Настройте формат данных для каждого столбца (текст/дата/число).