Microsoft Excel отлично справляется со многими повседневными задачами. Но время от времени вы сталкиваетесь с одним из его недостатков: размером с электронную таблицу. Прочтите, чтобы узнать, как уменьшить размер таблицы Excel или разделить большой файл CSV на несколько файлов.
Вы можете подумать: «Зачем мне нужно разбивать большой файл Excel на несколько файлов меньшего размера?» Это интересный вопрос, особенно с учетом того, что в Excel есть ограничение на количество строк в таблице 1048576.
Более 1 миллиона строк звучат феноменально. Однако достичь лимита строк проще, чем вы думаете, особенно при выполнении определенных задач.
Например, если вы продаете по электронной почте, вы можете импортировать файл CSV, содержащий миллионы адресов электронной почты. Единственная проблема в том, как управлять таблицей с таким количеством адресов? Кроме того, что, если кто-то отправит вам CSV, который уже превышает лимит (из другой программы)?
Если это похоже на проблему, с которой вы, вероятно, столкнетесь, попробуйте следующие пять способов разделить большой файл CSV или Excel на несколько файлов меньшего размера.
У вас нет под рукой большого CSV-файла, но вы хотите поиграть дома? В примерах я использую набор данных открытого исследования COVID-19 , который вы тоже можете скачать и использовать.
Есть несколько полезных программ-разделителей CSV. Вот двое из лучших. Однако справедливое предупреждение: поскольку эти программы работают, они иногда сталкиваются с проблемами памяти, что является общей проблемой для программ, разделяющих CSV.
Free Huge CSV Splitter – это базовый инструмент для разделения CSV. Вы вводите CSV-файл, который хотите разделить, количество строк, которое хотите использовать, а затем выбираете « Разделить файл» . Количество строк определяет количество выходных файлов, которые у вас останутся.
CSV Splitter – второй инструмент. Он предлагает почти ту же функциональность, что и Free Huge CSV Splitter, хотя и с немного более гладким дизайном. Он быстро разбивает ваш CSV-файл на небольшие части, что позволяет вам определить количество строк, которое вы хотите использовать.
Затем создайте программируемый командный файл . Вы можете использовать пакетный файл для обработки 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
Перед запуском вам необходимо настроить командный файл. Я расскажу вам, что делает каждая команда, и вы можете изменить это в соответствии с размером вашего командного файла, а также с требуемым выводом.
После того, как вы ввели свои переменные, перейдите в Файл> Сохранить как . Выберите имя файла и нажмите Сохранить . Затем выберите только что сохраненный текстовый файл и нажмите F2, чтобы переименовать его. Замените расширение .txt на .bat и нажмите ОК, когда появится предупреждение. Теперь вы можете разделить ваш большой CSV-файл на более мелкие выходные файлы.
Вы можете использовать командные файлы для широкого круга повседневных задач . Но сценарии PowerShell быстрее, особенно для этого типа обработки и разделения.
Следующий сценарий быстро разрезает ваш большой CSV на файлы меньшего размера.
Сначала нажмите CTRL + X, чтобы открыть меню Windows Power, затем выберите PowerShell . Если PowerShell не подходит, введите powershell в строке поиска меню «Пуск» и выберите «Лучшее совпадение».
Теперь скопируйте и вставьте следующий скрипт:
$InputFilename = Get-Content 'C:filelocation'
$OutputFilenamePattern = 'output_done_'
$LineLimit = 50000
$line = 0
$i = 0
$file = 0
$start = 0
while ($line -le $InputFilename.Length) {
if ($i -eq $LineLimit -Or $line -eq $InputFilename.Length) {
$file++
$Filename = "$OutputFilenamePattern$file.csv"
$InputFilename[$start..($line-1)] | Out-File $Filename -Force
$start = $line;
$i = 0
Write-Host "$Filename"
}
$i++;
$line++
}
Замените местоположение файла в первой строке своим CSV-файлом, затем запустите сценарий. Скрипт выводит файлы CSV меньшего размера в каталог пользователя. Например, мои файлы CSV находятся в папке C: Users Gavin с именем файла output_done_1.csv . Вы можете изменить имя вывода, изменив строку $ OutputFilenamePattern = 'output_done_' .
Вы можете найти исходный сценарий на SPJeff .
Ваше предпоследнее решение разбить большой CSV-файл на мелкие части на самом деле не разбивает его. Скорее, он позволяет вам загрузить большой CSV-файл в Excel и использовать инструмент Power Pivot, чтобы открыть его. Вот так; вы можете эффективно игнорировать ограничение строки Excel и управлять файлом в программе.
Для этого нужно создать ссылку на данные в CSV-файл, а затем использовать Power Pivot для управления содержимым. Полное объяснение и руководство можно найти в блоге Хосе Баррето, в котором подробно описан процесс.
Короче говоря, Баррето создает сводную таблицу, используя «до 8,5 миллионов строк без каких-либо проблем». Приведенное выше изображение взято из сообщения в блоге, на котором в Excel показано всего 2 миллиона строк.
Помните, что этот процесс не разбивает CSV на небольшие части. Однако это означает, что вы можете управлять CSV в Excel, что является очень удобной альтернативой. Если вам нужны дополнительные советы, узнайте, как использовать сводную таблицу для анализа данных .
Существуют также онлайн-сервисы, которые разбивают ваш большой CSV-файл на более мелкие части. Одним из таких вариантов является Split CSV , бесплатный онлайн-разделитель CSV.
Split CSV отлично справился с набором данных COVID-19, разбив его на удобные фрагменты. Как и в случае с другими инструментами, вы определяете количество строк для каждого файла и позволяете ему разделять его. Однако у меня не было большого CSV-файла для тестирования, поэтому ваш опыт может отличаться.
Разделенный CSV также включает дополнительные опции. За абонентскую плату вы можете использовать настраиваемый разделитель , выбрать тип выходного файла, удалить определенные символы из выходных файлов и удалить повторяющиеся строки.
Теперь у вас есть пять решений для разбиения файлов CSV на небольшие части, что упрощает управление ими. Решения различаются по скорости и размеру файлов CSV, которыми они могут управлять, поэтому вам, возможно, придется поэкспериментировать, чтобы найти решение, которое лучше всего подходит для вас.
Кредит изображения: lucadp / Depositphotos