Экспорт данных из Excel в TXT: полное руководство с примерами

Конвертация таблиц Microsoft Excel в текстовый формат TXT — стандартная задача при работе с данными. Такой экспорт требуется для интеграции с другими программами, загрузки в базы данных или передачи информации в системах, не поддерживающих формат .xlsx. Несмотря на кажущуюся простоту, процесс имеет нюансы: выбор разделителей, кодировки и обработка специальных символов может повлиять на корректность итогового файла.

Многие пользователи сталкиваются с проблемами при сохранении кириллических символов или многозначных чисел — они превращаются в набор знаков ???? или теряют форматирование. Эта статья поможет избежать типичных ошибок и выбрать оптимальный метод экспорта в зависимости от вашей версии Excel и целей использования текстового файла.

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

Если вы работаете с Excel Online или Google Sheets, найдёте здесь адаптированные инструкции. А для разработчиков добавили раздел о программном экспорте через VBA и Python — это ускорит обработку сотен файлов в пакетном режиме.

1. Стандартный экспорт через «Сохранить как»

Самый распространённый способ — использование встроенной функции Excel. Он подходит для одноразового сохранения небольших таблиц (до 10 000 строк) и не требует дополнительных навыков. Вот пошаговая инструкция:

Откройте ваш файл в Excel и перейдите в меню Файл → Сохранить как. В выпадающем списке Тип файла выберите Текстовый файл (с разделителями табуляции) (.txt) или Текстовый файл (с разделителями-запятыми) (.csv). Последний вариант создаст файл с расширением .csv, но его легко переименовать в .txt без потери данных.

Нажмите Сохранить — появится предупреждение о возможной потере функций (формул, форматирования). Подтвердите действие. Если в таблице есть кириллица, на следующем шаге выберите кодировку Юникод (UTF-8) или Windows (CP1251) в зависимости от требований программы, куда будет загружаться файл.

⚠️ Внимание: При сохранении в CSV даты в формате ДД.ММ.ГГГГ могут автоматически преобразоваться в ММ/ДД/ГГГГ. Чтобы этого избежать, предварительно отформатируйте ячейки как Текст через Главная → Формат → Формат ячеек.
  • 📌 Плюсы метода: не требует установки дополнительного ПО, сохраняет структуру таблицы.
  • ⚠️ Минусы: ограничение на размер файла (в Excel 2016+ — до 1 048 576 строк), возможны проблемы с кодировкой.
  • ⚙️ Когда использовать: для разовых задач с небольшими наборами данных.

Проверьте отсутствие объединённых ячеек|Отформатируйте даты как текст|Удалите пустые строки/столбцы|Сохраните оригинальный файл (.xlsx) на случай ошибок-->

2. Экспорт с настройкой разделителей

По умолчанию Excel использует запятую или точку с запятой в качестве разделителя столбцов. Но что делать, если в ваших данных уже есть запятые (например, в адресах или описаниях)? В этом случае нужно выбрать альтернативный символ-разделитель.

Для этого после сохранения файла как CSV откройте его в Блокноте и замените все запятые на другой символ (например, | или ;) через функцию Правка → Заменить. Альтернативный способ — использовать Power Query (доступен в Excel 2016+):

  1. Выделите вашу таблицу и перейдите на вкладку Данные → Из таблицы/диапазона.
  2. В открывшемся редакторе Power Query выберите Главная → Заменить значения.
  3. Укажите заменяемый символ (например, ,) и новый разделитель (например, ;).
  4. Нажмите Закрыть и загрузить в... и выберите Текстовый файл.

Для автоматизации процесса можно записать макрос:

Sub ExportWithCustomDelimiter()

Dim fs As Object, file As Object

Set fs = CreateObject("Scripting.FileSystemObject")

Set file = fs.CreateTextFile("C:\Export\data.txt", True, True) ' UTF-8

' Экспорт с разделителем "|"

For Each row In Selection.Rows

For Each cell In row.Cells

file.Write CStr(cell.Value) & "|"

Next cell

file.WriteLine

Next row

file.Close

End Sub

⚠️ Внимание: Если вы используете | как разделитель, убедитесь, что этот символ отсутствует в самих данных. В противном случае при импорте файла произойдёт смещение столбцов.

3. Онлайн-конвертеры: быстро и без установки

Если у вас нет доступа к Excel или нужно сконвертировать файл на чужом компьютере, можно воспользоваться онлайн-сервисами. Они поддерживают не только .xlsx, но и устаревшие форматы вроде .xls. Популярные инструменты:

  • 🌐 ConvertCSV — позволяет выбрать разделитель и кодировку.
  • 🔄 TableConvert — поддерживает предварительный просмотр результата.
  • 📊 AConvert — пакетная обработка до 40 файлов одновременно.

Алгоритм работы одинаковый для всех сервисов:

  1. Загрузите файл с компьютера или из облачного хранилища (Google Drive, Dropbox).
  2. Выберите параметры: разделитель (табуляция, запятая, точка с запятой), кодировку (UTF-8 рекомендуется для кириллицы).
  3. Нажмите Convert и скачайте готовый .txt.

Преимущество онлайн-конвертеров — поддержка редких форматов (например, .ods из OpenOffice) и отсутствие ограничений по размеру файла (на некоторых сервисах до 50 МБ). Однако загружая конфиденциальные данные на сторонние сайты, вы рискуете их утечкой. Для корпоративных файлов лучше использовать локальные методы.

📊 Какой метод экспорта вы используете чаще?
Стандартный "Сохранить как"
Макросы/VBA
Онлайн-конвертеры
Power Query
Другой способ

4. Автоматизация через VBA и Python

Для регулярного экспорта сотен файлов ручные методы не подходят. В этом случае поможет автоматизация с помощью скриптов. Рассмотрим два варианта: макросы VBA (встроены в Excel) и скрипты на Python (требуется установка интерпретатора).

Способ 1: Макрос VBA для пакетного экспорта

Следующий код сохраняет все листы активной книги в отдельные .txt-файлы с разделителем табуляции:

Sub ExportAllSheetsToTxt()

Dim ws As Worksheet

Dim folderPath As String

folderPath = "C:\ExportedTxt\" ' Укажите свою папку

If Right(folderPath, 1) <> "\" Then folderPath = folderPath & "\"

For Each ws In ThisWorkbook.Worksheets

ws.Copy

ActiveWorkbook.SaveAs folderPath & ws.Name & ".txt", xlText

ActiveWorkbook.Close False

Next ws

MsgBox "Экспорт завершён!", vbInformation

End Sub

Чтобы использовать макрос:

  1. Нажмите Alt + F11, чтобы открыть редактор VBA.
  2. Вставьте код в модуль (Insert → Module).
  3. Запустите макрос через F5 или кнопку Run.

Способ 2: Python с библиотекой pandas

Установите pandas через команду pip install pandas openpyxl, затем используйте скрипт:

import pandas as pd

Чтение Excel

df = pd.read_excel("input.xlsx", sheet_name="Лист1")

Экспорт в TXT с разделителем ";"

df.to_csv("output.txt", sep=";", index=False, encoding="utf-8-sig")

Преимущества Python:

  • 🐍 Обработка файлов любого размера (ограничено только памятью ПК).
  • ⚡ Возможность предварительной очистки данных (удаление дубликатов, замена значений).
  • 📂 Папковая обработка: можно экспортировать все файлы из директории в цикле.
⚠️ Внимание: При использовании pandas даты автоматически конвертируются в формат YYYY-MM-DD. Если нужен другой формат, предварительно отформатируйте столбец в Excel как текст.
Как обработать 100+ файлов за раз?

Используйте этот скрипт для пакетного экспорта всех .xlsx из папки:

import os

import pandas as pd

folder = "C:/InputExcel/"

for file in os.listdir(folder):

if file.endswith(".xlsx"):

df = pd.read_excel(folder + file)

df.to_csv(f"C:/OutputTxt/{file.replace('.xlsx', '.txt')}", sep=";", index=False)

Скрипт создаст текстовые файлы с оригинальными именами в папке OutputTxt.

5. Экспорт из Google Sheets в TXT

Google Таблицы не поддерживают прямой экспорт в .txt, но обойти это ограничение можно двумя способами:

Метод 1: Сохранение как CSV с последующим переименованием

  1. Откройте файл в Google Sheets.
  2. Перейдите в Файл → Скачать → Значения, разделённые запятыми (.csv).
  3. Переименуйте скачанный файл с .csv на .txt.

Метод 2: Использование Apps Script

Для автоматизации создайте скрипт:

function exportToTxt() {

const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

const data = sheet.getDataRange().getValues();

let txt = "";

data.forEach(row => {

txt += row.join(";") + "\n"; // Разделитель ";"

});

DriveApp.createFile("export.txt", txt);

}

Чтобы запустить:

  1. Откройте Расширения → Apps Script.
  2. Вставьте код и нажмите Выполнить.
  3. Файл export.txt появится в вашем Google Drive.

Обратите внимание: при экспорте через Apps Script даты преобразуются в числовой формат (количество дней с 1900 года). Чтобы этого избежать, предварительно отформатируйте ячейки с датами как текст вручную.

6. Обработка больших файлов (100 000+ строк)

Стандартные методы Excel не подходят для файлов размером более 100 МБ — программа может зависнуть или выдавать ошибку "Недостаточно памяти". В таких случаях используйте:

Метод Макс. размер файла Скорость Требуемые навыки
Power Query (Excel 2016+) до 1 ГБ Средняя Базовые
Python (pandas) не ограничено Высокая Средние
SQL (импорт в базу) не ограничено Низкая Продвинутые
Notepad++ (редактирование) до 2 ГБ Низкая Базовые

Для Power Query:

  1. Импортируйте данные через Данные → Из файла → Из рабочей книги.
  2. В редакторе Power Query удалите ненужные столбцы, чтобы уменьшить размер.
  3. Экспортируйте результат в TXT через Главная → Закрыть и загрузить в....

Для Python используйте чтение файла порциями (chunksize):

for chunk in pd.read_excel("large_file.xlsx", chunksize=10000):

chunk.to_csv("output.txt", mode="a", sep="|", index=False, header=False)

⚠️ Внимание: При работе с файлами >500 МБ разбейте их на части по 100 000 строк. Это ускорит обработку и снизит риск сбоя.

7. Типичные ошибки и их решение

Даже при правильном экспорте могут возникать проблемы. Рассмотрим самые распространённые и способы их устранения:

  • 💣 Краковые символы (????): Неверная кодировка. Пересохраните файл в UTF-8 или ANSI.
  • 📉 Смещение столбцов: В данных есть разделитель (например, запятая в адресе). Замените его на нейтральный символ.
  • 🔢 Числа в научной нотации (1.23E+10): Отформатируйте столбец как текст перед экспортом.
  • 🗓️ Некорректные даты: Используйте формат ДД-ММ-ГГГГ или сохраняйте как текст.
  • 🚫 Пустой файл: Проверьте права доступа к папке сохранения или антивирус (может блокировать запись).

Если после экспорта файл не открывается в целевой программе:

  1. Проверьте разделители в Блокноте (должны совпадать с ожидаемыми).
  2. Убедитесь, что кодировка файла соответствует настройкам программы (например, часто требует Windows-1251).
  3. Для диагностики импортируйте файл обратно в Excel через Данные → Из текста.

Критическая ошибка: если в данных есть переносы строк (\n), они разобьют запись на несколько строк в TXT. Чтобы этого избежать, замените \n на пробел или другой символ через функцию =ПОДСТАВИТЬ(A1;СИМВОЛ(10);" ").

FAQ: Частые вопросы

Можно ли экспортировать в TXT только выделенный диапазон?

Да. Выделите нужные ячейки, скопируйте их (Ctrl+C), вставьте в Блокнот и сохраните как .txt. Альтернативно используйте макрос:

Sub ExportSelectionToTxt()

Dim rng As Range, fileNum As Integer

Set rng = Selection

fileNum = FreeFile

Open "C:\Export\selected.txt" For Output As #fileNum

For Each row In rng.Rows

For Each cell In row.Cells

Print #fileNum, cell.Value;

Next cell

Print #fileNum,

Next row

Close #fileNum

End Sub

Как сохранить формулы, а не значения?

Стандартный экспорт в TXT сохраняет только значения. Чтобы экспортировать формулы:

  1. Создайте копию листа (ПКМ по вкладке → Переместить/скопировать).
  2. Выделите все ячейки с формулами и нажмите Ctrl + ` (левая верхняя клавиша на клавиатуре).
  3. Скопируйте отображаемые формулы и вставьте их как значения (Специальная вставка → Значения).
  4. Экспортируйте полученный лист в TXT.
Почему в TXT-файле пропали ведущие нули (например, в артикулах 00123)?

Это происходит потому, что Excel интерпретирует такие данные как числа. Решения:

  • Отформатируйте столбец как Текст до ввода данных.
  • Добавьте апостроф перед числом (например, '00123).
  • Используйте пользовательский формат ячеек: выделите столбец → Формат ячеек → Числовой → 00000.
Как автоматизировать экспорт при изменении исходного файла?

Настройте триггер в Excel через VBA:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

Call ExportAllSheetsToTxt ' Вызов макроса из раздела 4

End Sub

Этот код будет запускать экспорт при каждом изменении данных на листе. Для Google Sheets используйте триггеры в Apps Script:

function onEdit() {

exportToTxt(); // Вызов функции из раздела 5

}

Можно ли экспортировать в TXT с сохранением цветов или форматирования?

Нет. Формат TXT поддерживает только текстовые данные без форматирования. Альтернативы:

  • PDF — сохраняет визуальное оформление.
  • HTML — поддерживает цвета и шрифты (экспорт через Файл → Сохранить как → Веб-страница).
  • RTF — формат с базовым форматированием (доступен в Word после вставки таблицы).