Разделение таблицыРазработка и доработка

Скрипт на Python, который разделит большой файл Excel или CSV на части по числу строк или по столбцу

Обычно готово за 15 минутДоработки включеныКонтроль качества
Пакеты
Защита оплатыПодробнее
  • Доработки в рамках пакета бесплатны.
  • Если вы не ответите в течение 3 дней после сдачи, работа будет принята автоматически.

При оплате деньги резервируются и переходят сервису, только когда вы примете работу.

Скрипт на Python, который разделит большой файл Excel или CSV на части по числу строк или по столбцу

Пример результата

Пример по пакету «Стандарт»

Сводный отчёт в Excel из ежемесячных продаж 9 магазинов

Как его запускают

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Папка: sales/2026-10, найдено файлов: 9
2026-11-02 09:14:03 INFO  shop-01.csv: 1284 строки
2026-11-02 09:14:04 INFO  shop-02.xlsx: 967 строк
2026-11-02 09:14:04 WARN  shop-07.csv: пропущены 3 строки без цены (строки 88, 412, 913)
2026-11-02 09:14:05 INFO  Готово: 10 412 строк -> report-2026-10.xlsx (листы «Продажи» и «Итоги»)

Настройки, а не код

Названия столбцов каждого магазина лежат в settings.ini. Новый магазин или переименованный столбец — это одна строка там:

[columns]
date = Дата, Дата продажи, День
product = Товар, Наименование, Название
quantity = Кол-во, Количество, Шт
price = Цена, Цена за шт

Фрагмент кода

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Читает файл одного магазина и даёт столбцам названия из отчёта."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name}: нет столбца «{name}» (искали: {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Файлы: ZIP-архив с merge_sales.py (310 строк), settings.ini, requirements.txt и README: как установить Python, как запустить скрипт и что значит каждое сообщение в журнале. Клиент запускает скрипт на своём компьютере.

Клиент: небольшая сеть из 9 магазинов канцтоваров. Каждый магазин присылает продажи за месяц в CSV или Excel, и названия столбцов у всех немного разные. Задача: скрипт, который читает все файлы из папки, приводит столбцы к одному виду и сохраняет один отчёт в Excel: все продажи и отдельный лист с итогами по магазинам.

Клиент и все данные вымышлены.

Об услуге

Таблицу на сотни тысяч строк тяжело открыть, она не проходит в форму импорта, которая принимает по 5000 строк, или её нужно разослать разным людям по частям. Этот скрипт на Python разделит её: на части по заданному числу строк или по значению в столбце, чтобы у каждого региона, магазина или сотрудника был свой файл. В каждой части остаются строка заголовков и порядок столбцов, а файлы называются так, как вам нужно, например orders_north.xlsx. Скрипт читает CSV и Excel и сохраняет в любом из них. Пришлите несколько строк таблицы и правило деления. Запускаете его вы сами на своём компьютере, исходный файл не меняется. Скрипт делит данные, но не проверяет и не исправляет значения в них.

Что входит

  • Что вы получитеАрхив ZIP со скриптом на Python, README с пошаговой инструкцией и, начиная со «Стандарта», файл настроек с правилом деления и именами файлов; код также виден на странице заказа.
  • По строкам или по столбцуРавные части или по файлу на каждое значение
  • Заголовки в каждой частиКаждый файл открывается и загружается сам по себе
  • Ваши имена файловС номером или значением столбца в имени
  • Исходник не трогаетсяЧасти сохраняются в отдельную папку
  • Понятный кодС комментариями, правило легко поменять потом

Порядок работы

  1. 1
    ЗадачаВы присылаете несколько строк и описываете, как делить файл
  2. 2
    КодМы пишем скрипт и инструкцию по запуску
  3. 3
    ПроверкаВы запускаете его на своём файле и проверяете части
  4. 4
    ПравкиВы просите правки в рамках пакета и присылаете текст ошибки, если она есть

Что нужно от вас

Первые 10-20 строк таблицы в CSV или Excel (настоящие имена и числа можно заменить), сколько строк в полном файле и сколько он весит, и правило: столько-то строк на часть или по файлу на каждое значение столбца (назовите столбец). Как называть части, CSV или Excel, в отдельные файлы или на листы одной книги. Ваша система: Windows, macOS или Linux.

В брифе мы спросим:

  • Какой файл нужно разделить?
  • Как его делить?
  • Какими должны быть части?
  • Где он будет работать?

Сравнение пакетов

ПакетыЭкономДеление по числу строк16 $СтандартДеление с настройками33 $БизнесПрограмма для деления67 $
Срок1 день2 дня3 дня
Доработки123
Коддо 150 строкдо 400 строкдо 1000 строк
Файлов кода1до 3до 8
Файл настроекНетДаДа
Понятные ошибки и журнал работыНетДаДа
Параметры запуска и инструкция для запуска по расписаниюНетНетДа
Инструкция по установке и запуску (README)ДаДаДа
ЯзыкPythonPythonPython
Заказать ЭкономЗаказать СтандартЗаказать Бизнес

Защита оплаты

Вы оплачиваете заказ сразу, но деньги переходят сервису только за принятую работу.

  • Фиксированная ценаЦена пакета не меняется после оплаты.
  • Деньги резервируютсяПри оплате сумма только резервируется. Сервису она переходит, когда вы примете работу.
  • Проверка перед сдачейКаждый результат проходит проверку качества, прежде чем попасть к вам, и вы видите его на странице заказа до приёмки.
  • Бесплатные доработкиПросите изменения в рамках брифа столько раз, сколько предусмотрено пакетом.
  • Приёмка через 3 дняЕсли в течение 3 дней после сдачи вы не примете работу и не попросите изменений, она будет принята автоматически. Если после сдачи вы напишете в чат заказа, заказ подождёт; ответив, мы можем начать отсчёт 3 дней заново и сообщим об этом в чате.
  • Переделка или полный возвратЕсли результат не соответствует брифу и доработки не помогли или срок превышен больше чем вдвое, напишите в чат заказа: мы переделаем работу или полностью вернём деньги.
Как это работает →

Вопросы и ответы

Он разделит файл, который не открывается в Excel?

Да, если это CSV: скрипт читает его по строкам, поэтому и миллионы строк не проблема. Файл .xlsx должен укладываться в ограничение самого Excel, 1 048 576 строк на листе.

Можно делить сразу по двум столбцам?

Да, начиная со «Стандарта»: например, по файлу на каждый регион и месяц. Назовите столбцы и как должны выглядеть имена файлов.

Даты и нули в начале сохранятся?

Да, значения копируются как текст, если вы не попросите иначе, поэтому коды вроде 00125 не теряют нули. Напишите, в каких столбцах даты или числа.

Вы разделите файл за меня?

Нет. Скрипт вы запускаете на своём компьютере, и полный файл остаётся у вас. Нам нужны только несколько строк для примера.

Не нашли ответ?

Пакеты