Как сохранить файл Excel в формате TXT: 5 проверенных способов + решения проблем

Зачем конвертировать Excel в TXT и когда это действительно нужно

Формат .txt кажется архаичным на фоне современных XLSX или CSV, но он остаётся востребованным в специфических сценариях. Например, когда требуется передать данные в системы, работающие только с плоскими текстовыми файлами — от устаревших бухгалтерских программ до промышленных контроллеров. Или когда нужно гарантированно избежать проблем с совместимостью: txt-файл откроется на любом устройстве, даже на терминале с ограниченным ПО.

Ключевое отличие TXT от CSV: первый сохраняет данные в виде "сырого" текста без структуры (каждая ячейка — новая строка или разделена символом), а второй подразумевает табличный формат с разделителями (запятыми, точками с запятой). Это делает TXT более универсальным для нестандартных задач — например, когда нужно экспортировать только одну колонку или преобразовать данные для скрипта на Python/Bash.

В этой статье разберём все актуальные способы конвертации — от ручного сохранения через меню Excel до автоматизации через Power Query и VBA. А также раскроем нюансы, о которых не пишут в стандартных инструкциях: как сохранить формулы в виде текста, почему пропадают кириллические символы и как исправить разбивку данных при экспорте.

Способ 1: Сохранение через меню "Файл" (для Excel 2010–2023 и Microsoft 365)

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

  1. Откройте файл в Excel и перейдите во вкладку Файл → Сохранить как.
  2. В списке форматов выберите Текстовый файл (*.txt).
  3. Укажите папку для сохранения и нажмите Сохранить.

После этого появится диалоговое окно с предупреждением о возможной потере данных. Здесь важно обратить внимание на два момента:

  • 🔹 Только активный лист: Excel сохраняет в TXT только текущий лист. Если нужно экспортировать несколько листов — повторите процедуру для каждого или используйте VBA (см. Способ 4).
  • 🔹 Разделитель по умолчанию: в русской версии Excel это будет точка с запятой (;), в английской — запятая (,). Изменить его в этом окне нельзя — только через настройки системы (см. раздел "Проблемы и решения").

Ячейки не содержат объединений (они превратятся в пустые строки)

Нет скрытых символов (переносов строк, табуляций)

Данные в одной колонке не содержат разделитель (иначе они разобьются на части)

Формулы преобразованы в значения (или нужно сохранить их как текст)-->

Если в файле есть формулы, Excel предложит сохранить их результаты. Чтобы экспортировать сами формулы в текстовом виде, предварительно выделите диапазон и выполните CTRL + ` (клавиша под Esc), чтобы переключиться в режим отображения формул. Затем скопируйте данные и вставьте их в новый лист как значения (ПКМ → Специальная вставка → Значения).

Способ 2: Экспорт с настройкой разделителей через "Мастер текстов"

Когда стандартное сохранение не подходит — например, нужно использовать нестандартный разделитель (|, ^) или экспортировать данные с определённой кодировкой — поможет Мастер текстов (Text Import Wizard). Этот инструмент скрыт в новых версиях Excel, но его можно вызвать через Power Query:

  1. Перейдите во вкладку Данные → Получить данные → Из файла → Из текстового/CSV.
  2. Выберите любой существующий TXT-файл (даже пустой) и нажмите Импорт.
  3. В открывшемся окне мастера настройте:
    • 📌 Формат файла: "С разделителями" или "Фиксированной ширины".
    • 📌 Разделитель: укажите нужный символ (табуляция, запятая, пробел и др.).
    • 📌 Кодировка: для кириллицы выберите 1251 (Windows) или UTF-8.
  • Нажмите Готово, затем Загрузить в... и выберите Только создать подключение.
  • Вернитесь в Power Query, найдите ваш запрос и нажмите Изменить. Здесь можно вручную отредактировать шаги преобразования.
  • Этот метод сложнее, но даёт полный контроль над экспортом. Например, вы можете:

    • 🔧 Заменить разделитель на любой символ, даже на несколько символов (например, |||).
    • 🔧 Удалить лишние пробелы или спецсимволы перед экспортом.
    • 🔧 Преобразовать даты в нужный текстовый формат (например, ДД.ММ.ГГГГ вместо автоматического формата Excel).

    Способ 3: Конвертация через "Сохранить как CSV" с последующим переименованием

    Если в вашей версии Excel нет опции сохранения в TXT (например, в Excel Online или мобильной версии), можно пойти на хитрость:

    1. Сохраните файл как CSV (разделители — запятые) (*.csv).
    2. Закройте Excel и переименуйте расширение файла с .csv на .txt (в проводнике Windows включите отображение расширений в меню Вид → Расширения имён файлов).

    Этот метод работает, потому что CSV и TXT по сути — текстовые файлы с разной семантикой. Однако есть нюансы:

    • ⚠️ В CSV по умолчанию используется кодировка UTF-8, а в TXTANSI. Если в данных есть кириллица, после переименования символы могут отобразиться кракозябрами. Решение: откройте файл в Блокноте и сохраните с кодировкой ANSI.
    • ⚠️ Некоторые программы распознают TXT и CSV по-разному. Например, может не принять переименованный файл как корректный 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

    Чтобы использовать этот код:

    1. Нажмите ALT + F11, чтобы открыть редактор VBA.
    2. Вставьте код в новый модуль (Insert → Module).
    3. Измените путь C:\Export\ на свою папку.
    4. Запустите макрос клавишей 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 pd
      

      df = 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: Формулы сохраняются как результаты

    Если нужно экспортировать сами формулы (например, для документации), выполните:

    1. Выделите диапазон с формулами.
    2. Нажмите CTRL + ` (клавиша под Esc), чтобы включить режим отображения формул.
    3. Скопируйте данные (CTRL + C) и вставьте как значения в новый лист (ПКМ → Специальная вставка → Значения).
    4. Сохраните новый лист в TXT.
    Проблема Причина Решение
    Кракозябры вместо кириллицы Неверная кодировка (например, UTF-8 вместо Windows-1251) Открыть файл в Notepad++ и пересохранить с правильной кодировкой
    Данные в одной строке Отсутствует разделитель строк (например, экспорт фиксированной ширины) Использовать разделитель \n или настроить экспорт через Power Query
    Пустые строки между данными Объединённые ячейки в исходном файле Удалить объединения (Главная → Объединить и поместить в центре)

    FAQ: Ответы на частые вопросы

    Можно ли сохранить в TXT несколько листов Excel одновременно?

    Нет, стандартные средства Excel не поддерживают экспорт нескольких листов в один TXT-файл. Альтернативы:

    • Сохраните каждый лист отдельно, затем объедините файлы через Блокнот или PowerShell.
    • Используйте VBA-скрипт для последовательного экспорта листов в один файл с разделителями.
    • Экспортируйте данные в CSV, а затем конвертируйте в TXT с помощью Python (pandas).
    Почему при открытии TXT-файла в Excel данные отображаются в одной колонке?

    Это происходит, если:

    • Файл сохранён без разделителей (фиксированная ширина). Решение: используйте Данные → Текст по столбцам и укажите разделитель вручную.
    • Разделитель в файле не совпадает с региональными настройками Excel. Например, файл с разделителем-запятой (,) открыт в русской версии Excel, где по умолчанию используется точка с запятой (;).

    Чтобы исправить:

    1. Откройте файл через Данные → Из текстового/CSV.
    2. В мастере импорта укажите правильный разделитель.
    Как сохранить в TXT с разделителем табуляции?

    В большинстве версий Excel при выборе формата TXT разделителем по умолчанию является табуляция. Однако в некоторых локализациях (например, русской) может использоваться точка с запятой. Чтобы гарантированно получить табуляцию:

    1. Сохраните файл как Текстовый файл (с разделителями табуляции) (*.txt) (если такой вариант есть в вашей версии).
    2. Или сохраните как 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 os
      

      import 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).