How to Split Large Spreadsheets and CSV Files
The amount of data we need to analyze keeps increasing but MS Excel still has a 1 million record limit. Well 1,048,576 rows to be precise.
There are many ways to deal with large files using code but a simple way is to split up the files into smaller files.
Then they can be opened in Excel easily.
There are a few ways to do this
Option 1: Use www.splitspreadsheets.com
Disclaimer: we made this tool
- Upload your file on the website
- Select how many rows you want in each split file
- Select whether you want the header to be included in each file or not
- Click Split Your Data and all split files will be downloaded in a .zip folder. The split files will be in .csv format which you can easily open in MS Excel
Option 2: Use a programming language
You can use any programming language you like that reads and write Excel or CSV files. You would need to be somewhat technical for this options.
The psuedo-code for any programming language will be like follows. You would change the file_path to match your path and rows_in_each_split_file to match how many rows you want in the file.
Using Python and .csv files the code will be as follows. Feel free to use
Дробление большого CSV файла
Из прошлой статьи про чтение огромадного CSV в C# вытекло целое приложение, предназначенное для распиливания такого файла на более мелкие части, чтобы с ними можно было работать.
Описание
В общем, я написал приложение, которое разделяет исходный невероятных размеров (несколько гигабайт, скажем) CSV файл на множество более мелких, чтобы с ними можно было работать хоть в Блокноте. Если помните, проблема с CSV в несколько гигабайт заключается в том, что для его чтения потребуется также несколько гигабайт оперативной памяти, что пока ещё является некоторой роскошью.
- Перетащить исходный CSV файл в область, обозначенную пунктирной линией (либо два раза кликнуть в первое поле ввода и выбрать файл, либо вставить туда путь до файла);
- Задать путь, куда будут складываться новые отрезанные CSV файлики (также два раза ткнув во второе поле ввода, либо вставив туда путь). Если поле оставить пустым, то файлы будут складываться в каталог с исходным;
- Нажать на кнопку с топором.
По нажатию на F1 появляется окно справки.
Требования
Приложение тестировалось в Windows 8.1 , но должно работать в любой, главное чтобы был установлен .NET Framework 4.5.1 .
Настройки
В .config файле есть некоторые настройки.
linesPerFile
Через сколько строк разрезать. Например, если задать 1000 , то исходный файл будет читаться в буфер до 1000 строки, после чего буфер скинется в новый файл, и с 1001 строки будет заполняться по новой. И так до конца исходного файла.
Если строки достаточно короткие, то можно ставить значение побольше, от 500000 , скажем. Если довольно большие — лучше не ставить больше 100000 .
addHeader
Если поставить True , то в каждый новый файл первой строкой будет писаться первая строка исходного файла. Такое может понадобиться, если исходный файл содержит “шапку”. По умолчанию выставлено именно True .
Загрузить
Для запуска нужна только папка bin\Release , остальное можете удалить. Из самой папки нужны только эти файлы:
- hugeCSVsplitter.exe
- hugeCSVsplitter.exe.config
- Ookii.Dialogs.Wpf.dll
Можете оставлять замечания/предложения на этой странице либо тут в каментах.
Как разбить огромную электронную таблицу Excel CSV на отдельные файлы
Microsoft Excel отлично справляется со многими повседневными задачами. Но время от времени вы сталкиваетесь с одним из его недостатков: размером с электронную таблицу. Прочтите, чтобы узнать, как уменьшить размер таблицы Excel или разделить большой файл CSV на несколько файлов.
Зачем разбивать большой CSV на несколько файлов?
Вы можете подумать: «Зачем мне нужно разбивать большой файл Excel на несколько файлов меньшего размера?» Это интересный вопрос, особенно с учетом того, что в Excel есть ограничение на количество строк в таблице 1048576.
Более 1 миллиона строк звучат феноменально. Однако достичь лимита строк проще, чем вы думаете, особенно при выполнении определенных задач.
Например, если вы продаете по электронной почте, вы можете импортировать файл CSV, содержащий миллионы адресов электронной почты. Единственная проблема в том, как управлять таблицей с таким количеством адресов? Кроме того, что, если кто-то отправит вам CSV, который уже превышает лимит (из другой программы)?
Если это похоже на проблему, с которой вы, вероятно, столкнетесь, попробуйте следующие пять способов разделить большой файл CSV или Excel на несколько файлов меньшего размера.
У вас нет под рукой большого CSV-файла, но вы хотите поиграть дома? В примерах я использую набор данных открытого исследования COVID-19 , который вы тоже можете скачать и использовать.
1. Разбейте файлы CSV с помощью программы
Есть несколько полезных программ-разделителей CSV. Вот двое из лучших. Однако справедливое предупреждение: поскольку эти программы работают, они иногда сталкиваются с проблемами памяти, что является общей проблемой для программ, разделяющих CSV.
Бесплатный Огромный Сплиттер CSV
Free Huge CSV Splitter – это базовый инструмент для разделения CSV. Вы вводите CSV-файл, который хотите разделить, количество строк, которое хотите использовать, а затем выбираете « Разделить файл» . Количество строк определяет количество выходных файлов, которые у вас останутся.
Сплиттер CSV
CSV Splitter – второй инструмент. Он предлагает почти ту же функциональность, что и Free Huge CSV Splitter, хотя и с немного более гладким дизайном. Он быстро разбивает ваш CSV-файл на небольшие части, что позволяет вам определить количество строк, которое вы хотите использовать.
2. Используйте пакетный файл
Затем создайте программируемый командный файл . Вы можете использовать пакетный файл для обработки CSV на более мелкие фрагменты, настраивая файл для доставки разных фрагментов.
Откройте новый текстовый документ, затем скопируйте и вставьте следующее:
Перед запуском вам необходимо настроить командный файл. Я расскажу вам, что делает каждая команда, и вы можете изменить это в соответствии с размером вашего командного файла, а также с требуемым выводом.
- «SET BFN =» должен указывать на CSV- файл, который нужно разбить.
- " SET LPF =" – это количество строк, которым вы хотите ограничить свой новый файл.
- "SET SFN =" – это новая схема именования ваших разделенных файлов.
После того, как вы ввели свои переменные, перейдите в Файл> Сохранить как . Выберите имя файла и нажмите Сохранить . Затем выберите только что сохраненный текстовый файл и нажмите F2, чтобы переименовать его. Замените расширение .txt на .bat и нажмите ОК, когда появится предупреждение. Теперь вы можете разделить ваш большой CSV-файл на более мелкие выходные файлы.
3. Используйте сценарий PowerShell для разделения файла CSV.
Вы можете использовать командные файлы для широкого круга повседневных задач . Но сценарии PowerShell быстрее, особенно для этого типа обработки и разделения.
Следующий сценарий быстро разрезает ваш большой CSV на файлы меньшего размера.
Сначала нажмите CTRL + X, чтобы открыть меню Windows Power, затем выберите PowerShell . Если PowerShell не подходит, введите powershell в строке поиска меню «Пуск» и выберите «Лучшее совпадение».
Теперь скопируйте и вставьте следующий скрипт:
Замените местоположение файла в первой строке своим CSV-файлом, затем запустите сценарий. Скрипт выводит файлы CSV меньшего размера в каталог пользователя. Например, мои файлы CSV находятся в папке C: Users Gavin с именем файла output_done_1.csv . Вы можете изменить имя вывода, изменив строку $ OutputFilenamePattern = 'output_done_' .
Вы можете найти исходный сценарий на SPJeff .
4. Разбейте большой CSV-файл с помощью Power Pivot
Ваше предпоследнее решение разбить большой CSV-файл на мелкие части на самом деле не разбивает его. Скорее, он позволяет вам загрузить большой CSV-файл в Excel и использовать инструмент Power Pivot, чтобы открыть его. Вот так; вы можете эффективно игнорировать ограничение строки Excel и управлять файлом в программе.
Для этого нужно создать ссылку на данные в CSV-файл, а затем использовать Power Pivot для управления содержимым. Полное объяснение и руководство можно найти в блоге Хосе Баррето, в котором подробно описан процесс.
Короче говоря, Баррето создает сводную таблицу, используя «до 8,5 миллионов строк без каких-либо проблем». Приведенное выше изображение взято из сообщения в блоге, на котором в Excel показано всего 2 миллиона строк.
Помните, что этот процесс не разбивает CSV на небольшие части. Однако это означает, что вы можете управлять CSV в Excel, что является очень удобной альтернативой. Если вам нужны дополнительные советы, узнайте, как использовать сводную таблицу для анализа данных .
5. Разбейте большой файл CSV в Интернете с помощью разделенного CSV
Существуют также онлайн-сервисы, которые разбивают ваш большой CSV-файл на более мелкие части. Одним из таких вариантов является Split CSV , бесплатный онлайн-разделитель CSV.
Split CSV отлично справился с набором данных COVID-19, разбив его на удобные фрагменты. Как и в случае с другими инструментами, вы определяете количество строк для каждого файла и позволяете ему разделять его. Однако у меня не было большого CSV-файла для тестирования, поэтому ваш опыт может отличаться.
Разделенный CSV также включает дополнительные опции. За абонентскую плату вы можете использовать настраиваемый разделитель , выбрать тип выходного файла, удалить определенные символы из выходных файлов и удалить повторяющиеся строки.
Разбейте файлы CSV на легко управляемые блоки
Теперь у вас есть пять решений для разбиения файлов CSV на небольшие части, что упрощает управление ими. Решения различаются по скорости и размеру файлов CSV, которыми они могут управлять, поэтому вам, возможно, придется поэкспериментировать, чтобы найти решение, которое лучше всего подходит для вас.
Как разбить огромный csv файл
Как разбить файл на две части, разархивировать и изменить вторую часть, а потом собрать файл обратно?
Здравствуйте! Хочу поднять тему Ципиховича Эндрю (в праве поднять тему отказано: новый вопрос.
Разделить огромный txt файл на куски и поместить в различные книги excel
Здравствуйте, уважаемые форумчане! У меня есть огромный файл txt, который нужно разделить на части.
Как сохранить в csv utf8 кодировки файл из exсel?
Как сохранить в csv utf8 кодировки файл из exel?
Как сохранить VBA-массив в CSV-файл без Excel
Как можно сохранить VBA-массив в CSV-файл без использования Excel? Сейчас я сначала вставляю.
50 миллионов строк? Это же кто такой файл родил?
Откройте csv как обычный текстовый файл, и построчно считывая, разбивайте как хотите.
aroma4s, приложите часть Excel файла, часть csv и то, что нужно получить с помощью ВПР.
Без этого будут только общие рассуждения.
Добавлено через 10 минут
Да, вырезать часть гигового файла тоже проблема Можно сделать с помощью hex-редактора, например HxD https://mh-nexus.de/en/hxd/
Сообщение от Казанский
Да, скорее всего могут быть проблемы даже если файл читать не полностью, а построчно.
А с небольшими файлами проблем нет.
Вот такой код разбивает файл в 1 млн.строк (примерно 27мегабайт) на файлы по 10000 строк за 10 секунд.
База данных недействительных паспортов
Понимаете, вы умнее меня и я не понимаю что вы имеете ввиду, можете подробно объяснить как это реализовать
Добавлено через 2 минуты
SoftIce, База данных недействительных паспортов
Понимаете, вы умнее меня и я не понимаю что вы имеете ввиду, можете подробно объяснить как это реализовать?
Добавлено через 1 минуту
bedvit, Я как то читал что можно загрузить csv в access и потом разбить на подмножества, не подскажите как это можно сделать?
Добавлено через 3 минуты
Hugo121, Можете подробней рассказать как загрузить в словарь и как считать такое количество строк?
Добавлено через 10 минут
Казанский, приложить не могу так как на работе нету доступа к интернету и копировать на флешку файлы нельзя,
В кратце: я делаю один лист со своими 5000-ми значениями, и второй лист на 1000000 значений с помощью впр искомые значения из 1-го листа ищутся во 2-м листе, если одинаковые значения есть то напротив строки со значением выводится тоже самое значение, если таких значений во 2-м листе нет то пишется Н/Д т.е. недопустимое данное, имеется ввиду что совпадений нет
мне нужно разбить 50000000 строчный файл по 1000000, чтобы я мог вставлять во второй лист и тем самым искать совпадающие значения
Добавлено через 8 минут
SoftIce, Казанский,
я думаю VB используется для видимых значений т.е. до 1000000, но никак не те что за границей поэтому я думаю тут либо нужно какой нибудь отдельный скрипт *.vbs написать либо как то с помощью access сделать подмножества cvs файлов
моя функция ВПР примерно выглядит так =ВПР(A7;’Лист2’A:A;1;ЛОЖЬ)