Вам не нужна ваша помощь. Я имею дело с книгой, которая содержит 7000 строк X 5000 столбцов данных на одном листе. Каждый из этих данных должен обрабатываться и вставляться в другой лист. Манипуляции относительно просты, где каждая манипуляция займет менее 10 строк кода (простые умножения и деления с парой Ifs). Тем не менее, файл сбой время от времени и получение различных типов ошибок. Проблема в том, что размер файла. Чтобы преодолеть эту проблему, я пытаюсь несколько подходовОбращение с огромным Excel-файлом
a) Отделите данные и выведите их в разных файлах. Держите оба файла открытыми и берете блок данных куском (обычно 200 строк по 5000 столбцов) и управляйте им и вставляйте его в выходной файл. Однако, если оба файла открыты, то я не уверен, что он исправляет проблему, так как потребляемая память будет одинаковой в любом случае, то есть вместо одного файла, потребляющего большую память, это будет два файла вместе, потребляющих одну и ту же память.
b) Отделите данные и выведите их в разных файлах. Получите доступ к данным в файле данных, пока он все еще закрыт, вставляя ссылки в выходной файл через макрос, манипулируя данными и вставляя их в вывод. Это можно сделать куском куском.
c) Отделите данные и выведите их в разных файлах. Запустите макрос, чтобы открыть файл данных и загрузить кусок данных, скажем 200 строк в память в массив и закрыть его. Обработать массив и открыть выходной файл и вставить результаты массива.
Какой из трех подходов лучше? Я уверен, что есть другие методы, которые более эффективны. Пожалуйста, предложите.
Я не знаком с Access, но попытался импортировать необработанные данные в Access, и это не получилось, потому что это позволило всего 255 столбцов.
Есть ли способ открыть файл, но вымойте его и выйдите из памяти. Затем можно попробовать небольшие вариации, описанные выше и выше. (Боюсь повторное открытие и закрытие будет врезаться файл.)
Посмотрите вперед ваши предложения
Я не уверен, что ваш лист Excel огромен по сегодняшним стандартам, например. машина с 8 Гбайт оперативной памяти. Вы попробовали альтернативную таблицу, как только что выпустили [LibreOffice 4.2] (http://www.libreoffice.org/) –
Спасибо Базиле. Я не знаю много о LibreOffice. Я побил данные в 5 файлов, а файлы вместе более 600 МБ. Существует некоторое дублирование и даже после удаления дублирования, я ожидаю, что файл будет около 3-400 МБ, если я поместил данные в один файл. У вас есть предложение? Моя машина - 6 ГБ. Вы все еще считаете, что это можно сделать в Excel без каких-либо задержек и нет таких «причудливых» алгоритмов, указанных выше? Как вы думаете, мне придется обновить до 8 ГБ оперативной памяти? Пожалуйста, дайте мне знать. – Peekay
Я понятия не имею о Excel. Я никогда не использовал его, и я никогда не использовал систему Microsoft Windows (я использую Linux с 1994 года). Я думаю, вам стоит попробовать только что выпущенный Libreoffice 4.2 (это бесплатное программное обеспечение, а также работает в Windows). –