Зачем конвертировать Excel в TXT и когда это действительно нужно
Формат .txt кажется архаичным на фоне современных XLSX или CSV, но он остаётся востребованным в специфических сценариях. Например, когда требуется передать данные в системы, работающие только с плоскими текстовыми файлами — от устаревших бухгалтерских программ до промышленных контроллеров. Или когда нужно гарантированно избежать проблем с совместимостью: txt-файл откроется на любом устройстве, даже на терминале с ограниченным ПО.
Ключевое отличие TXT от CSV: первый сохраняет данные в виде "сырого" текста без структуры (каждая ячейка — новая строка или разделена символом), а второй подразумевает табличный формат с разделителями (запятыми, точками с запятой). Это делает TXT более универсальным для нестандартных задач — например, когда нужно экспортировать только одну колонку или преобразовать данные для скрипта на Python/Bash.
В этой статье разберём все актуальные способы конвертации — от ручного сохранения через меню Excel до автоматизации через Power Query и VBA. А также раскроем нюансы, о которых не пишут в стандартных инструкциях: как сохранить формулы в виде текста, почему пропадают кириллические символы и как исправить разбивку данных при экспорте.
Способ 1: Сохранение через меню "Файл" (для Excel 2010–2023 и Microsoft 365)
Самый очевидный метод — использовать встроенную функцию экспорта. Он подходит для одноразовых задач, когда не нужно настраивать разделители или кодировку. Вот пошаговая инструкция:
- Откройте файл в Excel и перейдите во вкладку
Файл → Сохранить как. - В списке форматов выберите
Текстовый файл (*.txt). - Укажите папку для сохранения и нажмите
Сохранить.
После этого появится диалоговое окно с предупреждением о возможной потере данных. Здесь важно обратить внимание на два момента:
- 🔹 Только активный лист: Excel сохраняет в TXT только текущий лист. Если нужно экспортировать несколько листов — повторите процедуру для каждого или используйте VBA (см. Способ 4).
- 🔹 Разделитель по умолчанию: в русской версии Excel это будет точка с запятой (
;), в английской — запятая (,). Изменить его в этом окне нельзя — только через настройки системы (см. раздел "Проблемы и решения").
Ячейки не содержат объединений (они превратятся в пустые строки)
Нет скрытых символов (переносов строк, табуляций)
Данные в одной колонке не содержат разделитель (иначе они разобьются на части)
Формулы преобразованы в значения (или нужно сохранить их как текст)-->
Если в файле есть формулы, Excel предложит сохранить их результаты. Чтобы экспортировать сами формулы в текстовом виде, предварительно выделите диапазон и выполните CTRL + ` (клавиша под Esc), чтобы переключиться в режим отображения формул. Затем скопируйте данные и вставьте их в новый лист как значения (ПКМ → Специальная вставка → Значения).
Способ 2: Экспорт с настройкой разделителей через "Мастер текстов"
Когда стандартное сохранение не подходит — например, нужно использовать нестандартный разделитель (|, ^) или экспортировать данные с определённой кодировкой — поможет Мастер текстов (Text Import Wizard). Этот инструмент скрыт в новых версиях Excel, но его можно вызвать через Power Query:
- Перейдите во вкладку
Данные → Получить данные → Из файла → Из текстового/CSV. - Выберите любой существующий TXT-файл (даже пустой) и нажмите
Импорт. - В открывшемся окне мастера настройте:
- 📌 Формат файла: "С разделителями" или "Фиксированной ширины".
- 📌 Разделитель: укажите нужный символ (табуляция, запятая, пробел и др.).
- 📌 Кодировка: для кириллицы выберите
1251 (Windows)илиUTF-8.
Готово, затем Загрузить в... и выберите Только создать подключение.Power Query, найдите ваш запрос и нажмите Изменить. Здесь можно вручную отредактировать шаги преобразования.Этот метод сложнее, но даёт полный контроль над экспортом. Например, вы можете:
- 🔧 Заменить разделитель на любой символ, даже на несколько символов (например,
|||). - 🔧 Удалить лишние пробелы или спецсимволы перед экспортом.
- 🔧 Преобразовать даты в нужный текстовый формат (например,
ДД.ММ.ГГГГвместо автоматического формата Excel).
Способ 3: Конвертация через "Сохранить как CSV" с последующим переименованием
Если в вашей версии Excel нет опции сохранения в TXT (например, в Excel Online или мобильной версии), можно пойти на хитрость:
- Сохраните файл как
CSV (разделители — запятые) (*.csv). - Закройте Excel и переименуйте расширение файла с
.csvна.txt(в проводнике Windows включите отображение расширений в менюВид → Расширения имён файлов).
Этот метод работает, потому что CSV и TXT по сути — текстовые файлы с разной семантикой. Однако есть нюансы:
- ⚠️ В CSV по умолчанию используется кодировка
UTF-8, а в TXT —ANSI. Если в данных есть кириллица, после переименования символы могут отобразиться кракозябрами. Решение: откройте файл в Блокноте и сохраните с кодировкойANSI. - ⚠️ Некоторые программы распознают TXT и CSV по-разному. Например, 1С может не принять переименованный файл как корректный TXT.
| Формат | Разделитель по умолчанию | Кодировка по умолчанию | Поддерживает несколько листов? |
|---|---|---|---|
| TXT | Табуляция или точка с запятой (зависит от региональных настроек) | ANSI (Windows-1251 для русского) | Нет |
| CSV | Запятая (в английской версии) или точка с запятой (в русской) | UTF-8 | Нет |
| PRN | Фиксированная ширина (пробелы) | ANSI | Нет |
Способ 4: Автоматизация через VBA (для массового экспорта)
Если вам нужно регулярно сохранять десятки файлов в TXT с одинаковыми настройками, ручной экспорт станет пыткой. В этом случае поможет VBA-скрипт. Вот пример макроса, который сохраняет все листы активной книги в отдельные TXT-файлы с разделителем-табуляцией:
Sub ExportSheetsToTxt()
Dim ws As Worksheet
Dim txtPath As String
txtPath = "C:\Export\" ' Укажите свою папку
For Each ws In ThisWorkbook.Worksheets
ws.Copy
ActiveWorkbook.SaveAs txtPath & ws.Name & ".txt", xlText
ActiveWorkbook.Close False
Next ws
End Sub
Чтобы использовать этот код:
- Нажмите
ALT + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Измените путь
C:\Export\на свою папку. - Запустите макрос клавишей
F5.
Преимущества этого метода:
- 🤖 Пакетная обработка: экспортируются все листы за один запуск.
- 🤖 Гибкость: можно модифицировать код для использования других разделителей или кодировок.
- 🤖 Автоматизация: макрос можно привязать к кнопке на панели или запускать по расписанию.
Как изменить разделитель в VBA-коде
Чтобы использовать запятую вместо табуляции, замените строку xlText на:
ActiveWorkbook.SaveAs txtPath & ws.Name & ".txt", xlText, CreateBackup:=False, Local:=True
' Добавляем параметр для разделителя (требует дополнительной настройки региональных параметров)
Полную документацию по параметрам метода SaveAs см. в справке Microsoft.
Если вам нужно сохранять файлы с определённой кодировкой (например, UTF-8), стандартный SaveAs не подойдёт. В этом случае придётся экспортировать данные в CSV, а затем конвертировать файл в TXT через PowerShell или Python.
Способ 5: Онлайн-конвертеры и альтернативные инструменты
Когда Excel недоступен (например, вы работаете на Mac с Numbers или на Linux), можно использовать сторонние сервисы. Однако здесь есть риски:
- 🔒 Конфиденциальность: загружая файл на онлайн-конвертер, вы передаёте данные третьей стороне. Для чувствительной информации (финансы, персональные данные) это недопустимо.
- 🔒 Ограничения: большинство бесплатных сервисов ограничивают размер файла (обычно до 10–50 МБ).
- 🔒 Качество конвертации: некоторые инструменты неправильно обрабатывают формулы или специальные символы.
Если риски приемлемы, вот проверенные сервисы:
- 🌐 Zamzar: поддерживает XLSX → TXT, отправляет результат на email.
- 🌐 CloudConvert: позволяет настроить разделитель и кодировку.
- 🌐 ConvertCSV: специализируется на текстовых форматах, есть опция предварительного просмотра.
Для локальной конвертации без Excel подойдут:
- 🖥️ LibreOffice Calc: бесплатный аналог Excel с поддержкой экспорта в TXT (меню
Файл → Сохранить как → Текстовый CSV, затем переименовать в.txt). - 🖥️ Pandas (Python): для программистов. Пример кода:
import pandas as pddf = pd.read_excel("file.xlsx")
df.to_csv("output.txt", sep='\t', index=False, encoding='utf-8')
Встроенное сохранение в Excel
Power Query / Power BI
VBA-скрипты
Онлайн-конвертеры
Другие программы (LibreOffice, Python и др.)
Не конвертирую-->
Распространённые проблемы и их решения
Даже при правильном экспорте результат может оказаться неожиданным. Вот типичные ошибки и способы их исправления:
⚠️ Внимание: Если после открытия TXT-файла в Блокноте вы видите иероглифы вместо кириллицы, проблема в кодировке. Откройте файл в Notepad++ или VS Code, затем выберите кодировкуUTF-8илиWindows-1251в меню кодировок.
Проблема 1: Данные в одной ячейке разбиваются на несколько строк
Это происходит, если в тексте ячейки есть символ, совпадающий с разделителем (например, запятая в CSV или точка с запятой в TXT). Решения:
- 🛠️ Замените разделитель на редко используемый символ (например,
|) черезНайти и заменить(CTRL + H). - 🛠️ Оберните проблемные ячейки в кавычки: выделите диапазон и выполните:
=CHAR(34) & A1 & CHAR(34)где
A1— адрес ячейки. Затем скопируйте формулу на весь диапазон и вставьте как значения.
Проблема 2: Пропадают ведущие нули (например, в артикулах "00123" становится "123")
По умолчанию Excel удаляет ведущие нули при экспорте в текстовые форматы. Чтобы сохранить их:
- 📊 Преобразуйте данные в текстовый формат: выделите колонку, нажмите
CTRL + 1, выберите форматТекстовый. - 📊 Добавьте апостроф перед числом (например,
'00123). В TXT апостроф не отобразится, но нули сохранятся.
Проблема 3: Формулы сохраняются как результаты
Если нужно экспортировать сами формулы (например, для документации), выполните:
- Выделите диапазон с формулами.
- Нажмите
CTRL + `(клавиша подEsc), чтобы включить режим отображения формул. - Скопируйте данные (
CTRL + C) и вставьте как значения в новый лист (ПКМ → Специальная вставка → Значения). - Сохраните новый лист в TXT.
| Проблема | Причина | Решение |
|---|---|---|
| Кракозябры вместо кириллицы | Неверная кодировка (например, UTF-8 вместо Windows-1251) |
Открыть файл в Notepad++ и пересохранить с правильной кодировкой |
| Данные в одной строке | Отсутствует разделитель строк (например, экспорт фиксированной ширины) | Использовать разделитель \n или настроить экспорт через Power Query |
| Пустые строки между данными | Объединённые ячейки в исходном файле | Удалить объединения (Главная → Объединить и поместить в центре) |
FAQ: Ответы на частые вопросы
Можно ли сохранить в TXT несколько листов Excel одновременно?
Нет, стандартные средства Excel не поддерживают экспорт нескольких листов в один TXT-файл. Альтернативы:
- Сохраните каждый лист отдельно, затем объедините файлы через Блокнот или PowerShell.
- Используйте VBA-скрипт для последовательного экспорта листов в один файл с разделителями.
- Экспортируйте данные в CSV, а затем конвертируйте в TXT с помощью Python (
pandas).
Почему при открытии TXT-файла в Excel данные отображаются в одной колонке?
Это происходит, если:
- Файл сохранён без разделителей (фиксированная ширина). Решение: используйте
Данные → Текст по столбцами укажите разделитель вручную. - Разделитель в файле не совпадает с региональными настройками Excel. Например, файл с разделителем-запятой (
,) открыт в русской версии Excel, где по умолчанию используется точка с запятой (;).
Чтобы исправить:
- Откройте файл через
Данные → Из текстового/CSV. - В мастере импорта укажите правильный разделитель.
Как сохранить в TXT с разделителем табуляции?
В большинстве версий Excel при выборе формата TXT разделителем по умолчанию является табуляция. Однако в некоторых локализациях (например, русской) может использоваться точка с запятой. Чтобы гарантированно получить табуляцию:
- Сохраните файл как
Текстовый файл (с разделителями табуляции) (*.txt)(если такой вариант есть в вашей версии). - Или сохраните как PRN (
Файл → Сохранить как → Форматированный текст (разделители — пробелы) (*.prn)), затем переименуйте расширение на.txt.
Для массовой конвертации используйте VBA с параметром xlText -4158 (табуляция) или xlTextWindows -4158.
Можно ли экспортировать в TXT с сохранением форматирования (цветов, шрифтов)?
Нет, формат TXT не поддерживает никакое форматирование — только сырые данные. Альтернативы:
- Сохраните файл в PDF (
Файл → Экспорт → Создать PDF/XPS), если нужно сохранить визуальное оформление. - Используйте HTML (
Файл → Сохранить как → Веб-страница (*.html)), если требуется частичное сохранение стилей. - Для передачи данных с минимальным форматированием (например, выделение жирным) используйте RTF.
Как автоматизировать экспорт в TXT для сотен файлов?
Для пакетной обработки подойдут:
- 🤖 PowerShell-скрипт:
$files = Get-ChildItem "C:\Source\*.xlsx"foreach ($file in $files) {
$excel = New-Object -ComObject Excel.Application
$workbook = $excel.Workbooks.Open($file.FullName)
$workbook.SaveAs("C:\Export\" + $file.BaseName + ".txt", -4158) # -4158 = xlText
$workbook.Close($false)
$excel.Quit()
}
- 🤖 Python с библиотекой pandas:
import osimport pandas as pd
for file in os.listdir("source/"):
if file.endswith(".xlsx"):
df = pd.read_excel(f"source/{file}")
df.to_csv(f"export/{file.replace('.xlsx', '.txt')}", sep='\t', index=False)
Для запуска по расписанию используйте Планировщик заданий Windows (для PowerShell) или cron (для Python на Linux/Mac).