Содержание
Excel отлично справляется со многими повседневными задачами. Но время от времени вы сталкиваетесь с одним из его недостатков: размером с электронную таблицу. Если вам нужно знать, как уменьшить электронную таблицу Excel или разделить большой CSV, мы вам поможем.
Достижение предела количества строк в электронной таблице само по себе является довольно серьезной задачей. Текущий предел строки таблицы Excel составляет 1 048 576. Это верно — более 1 миллиона строк и столько же столбцов.
Но достичь этого предела по ряду на самом деле невероятно легко при выполнении определенных задач. Если вы продаете по электронной почте, вы можете импортировать файл CSV
содержащие миллионы адресов электронной почты. Единственная проблема в том, как вы на самом деле управляете электронной таблицей с таким количеством адресов? Кроме того, что если кто-то отправит вам CSV, который уже превысил лимит (из другой программы)?
Что ж, я покажу вам, как разбить этот огромный CSV на легко управляемые куски.
(У вас нет большого CSV под рукой? Есть несколько довольно больших наборов данных CSV
на data.gov. Я собираюсь использовать список сравнения больниц из 260 000 строк, чтобы вы могли использовать тот же файл.)
1. Используйте программу
Существует множество полезных программ для разветвления CSV. Я покажу вам два лучших.
CSV Chunker
CSV Chunker — это разветвитель CSV с открытым исходным кодом. Он может обрабатывать большие файлы, быстро разбивая их на куски по вашему выбору. Потребовалось около 3 секунд, чтобы разделить наш CSV для больниц сравнения на 106 частей, каждая из которых содержит 2500 строк.
CSV Splitter
CSV Splitter — наш второй инструмент. Он предлагает почти такую же функциональность CSV Chunker, хотя и с немного более гладким дизайном. CSV Splitter потребовалось около 4 секунд, чтобы разделить наш CSV для больниц сравнения на 106, снова содержащий 2500 строк в каждом.
2. Используйте пакетный файл
Далее, программируемый пакетный файл
, Мы можем использовать пакетный файл для обработки CSV на более мелкие порции, настраивая файл для доставки разных порций.
Откройте новый текстовый документ. Скопируйте и вставьте следующее:
@echo off setlocal ENABLEDELAYEDEXPANSION REM Edit this value to change the name of the file that needs splitting. Include the extension. SET BFN=HCAHPSHospital.csv REM Edit this value to change the number of lines per file. SET LPF=2500 REM Edit this value to change the name of each short file. It will be followed by a number indicating where it is in the list. SET SFN=HosptialSplitFile REM Do not change beyond this line. SET SFX=%BFN:~-3% SET /A LineNum=0 SET /A FileNum=1 For /F "delims==" %%l in (%BFN%) Do ( SET /A LineNum+=1 echo %%l >> %SFN%!FileNum!.%SFX% if !LineNum! EQU !LPF! ( SET /A LineNum=0 SET /A FileNum+=1 ) ) endlocal Pause
Вам нужно будет настроить пакетный файл перед запуском. Я расскажу вам, что делает каждая команда, и вы можете изменить ее в соответствии с размером вашего пакетного файла, а также с требуемым выводом.
- «SET BFN =» следует указать на CSV вам нужно сломать
- «SET LPF = ” количество строк, которое вы хотите ограничить новым файлом
- «SET SFN =» это новая схема именования для ваших разделенных файлов
После того, как вы ввели свои переменные, отправляйтесь в Файл> Сохранить как. Выберите имя файла и выберите Сохранить. Затем выберите только что сохраненный текстовый файл и нажмите F2 переименовать его. Замените расширение TXT на BAT и нажмите Хорошо когда появится предупреждение. Теперь вы можете разделить свой большой CSV!
Я предупреждаю вас, хотя, этот метод занимает некоторое время. Вам, вероятно, лучше использовать один из вышеупомянутых сплиттеров.
Оригинальный сценарий и тему можно найти здесь.
3. Используйте скрипт PowerShell
Пакетные файлы удобны. Вы можете использовать их для широкого круга повседневных задач. Но сценарии PowerShell в целом быстрее, особенно для этого типа обработки и деления.
Следующий скрипт быстро разрезает ваш большой CSV на более мелкие файлы. Опять же, я использовал для сравнения CSV для больниц. Выполнение команды заняло около 3 секунд. Откройте Windows PowerShell ISE. Если вы не знаете, как это сделать, введите PowerShell ИСЕ в поиске меню Пуск и выберите соответствующую опцию. Когда PowerShell ISE открыт, выберите Показать скрипт стрелка, расположенная в верхнем правом углу (выделена красным на изображении ниже).
Скопируйте и вставьте следующую команду в панель сценариев в верхней части экрана.
$i=0; Get-Content C:\Users\Gavin\Downloads\Hospital_Revised_Flatfiles\HCAHPSHospital.csv -ReadCount 2500 | %{$i++; $_ | Out-File C:\Users\Gavin\Downloads\Hospital_Revised_Flatfiles\split\splitfile_$i.csv}
Во-первых, вам нужно изменить местоположение вашего входного файла. Во-вторых, вам нужно указать, сколько строк должны содержать ваши выходные файлы. Наконец, укажите местоположение выходного файла. Я оставил там свои пути к файлам, чтобы проиллюстрировать ситуацию. Кроме того, ваше выходное имя файла должен иметь суффикс «_ $ i.csv» соответствует моему. В противном случае ваши выходные файлы не будут правильно пронумерованы.
Когда вы отредактировали файл со своими собственными данными, нажмите CTRL + S сохранить свой сценарий.
Оригинальный сценарий можно найти здесь.
4. Загрузите его в модель данных
Наше окончательное решение фактически не разбивает большой CSV на более мелкие части. Видите ли, Хосе Баррето, член команды OneDrive, недавно проиллюстрировал, как именно вы можете загрузить большой файл CSV в Excel. В этом случае большое значение превышает предел строки в 1 048 567 строк. В руководстве он объясняет, что вместо фактической загрузки файла Excel 2016 может создать ссылку на данные для файла CSV.
Данные из исходного CSV будут доступны пользователю в рамках модели данных. Баррето создал сводную таблицу, используя «до 8,5 миллионов строк без каких-либо проблем». Приведенное выше изображение взято из сообщения в блоге Баррето (см. Ссылку ниже), отображающего в Excel в общей сложности 2 миллиона строк. (Узнайте, как использовать сводную таблицу для анализа данных
.)
Если это решение подходит вам, следуйте подробному руководству Хосе Баррето прямо здесь. Помните, что это не разбивает CSV, но это означает, что вы можете управлять своими данными в определенных инструментах Excel
, Если вы обращаетесь к вашим данным для непосредственного взаимодействия с ними, стоит попробовать.
Сломай!
Мы перечислили четыре решения для разбивки ваших массивных файлов CSV, включая два разных инструмента.
Из четырех решений пакетный файл, вероятно, самый медленный
, Сценарий PowerShell является быстрым и легко настраиваемым, а два приложения просты в использовании из коробки. Наконец, у вас есть возможность напрямую импортировать ваши данные в Excel миллионами строк.
Какой метод вы выберете? И есть ли у вас другие советы? Пожалуйста, поделитесь с нами в комментариях!
Кредит изображения: lucadp / Depositphotos