Страницы: 1
RSS
Открыть мега тяжёлый файл
 
Уважаемые знатоки, помогите пожалуйста как быть: имеется excel файл в формате xls размером ~180мб - это около 25 столбцов и ~400тыс строк - мой средненький комп с 4гб озу и 10м офисом элементарно не может открыть файл - просто висит на ‘нуле’ :((
Из файла нужны только некоторые столбцы, и для возможности работы планировал разбить его на несколько файлов - но для этого его нужно открыть..
Пробовал с компом помощнее - также висит при открытии.

Какие могут быть варианты?
1. Сделать новую выгрузку задав меньший период уже не могу тк база уже не доступна
2. искать супер-компьютер?
3. Возможно ли написать макрос который не открывая файл «заберёт из него заданные столбцы», названия столбцов имеются. Хотя сомневаюсь что можно обойтись без открытия..
4. Может ещё что-то есть?  
 
Для Excel и 10 Мб - уже много...
 
2. искать супер-компьютер?
- скорее всего это основной для вас вариант
3. Возможно ли написать макрос который не открывая файл «заберёт из него заданные столбцы», названия столбцов имеются. Хотя сомневаюсь что можно обойтись без открытия..
- Нет, всё равно макросу придётся открывать файл, чтобы получить из него данные
4. Может ещё что-то есть?
- в следующий раз делать выгрузку по меньшему периоду, а так же сохранять файл не в формате XLS, а в формате XLSX, а ещё лучше сохраняйте в TXT или CSV (текстовый) формат, а дальше уже куча способов забрать данные из текстового файла и макросом и Power Query
Изменено: New - 16.09.2021 22:53:31
 
Цитата
Yerkanat A. написал:
xls размером ~180мб - это около 25 столбцов и ~400тыс строк
странно, больше 64к строк xls вроде не поддерживал.
Цитата
Yerkanat A. написал:
Из файла нужны только некоторые столбцы
ну запросом можно вытянуть.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
ну запросом можно вытянуть.
о, точно, может попробовать через ADO вытянуть... Но надо знать точное название листа (или его индекс)
Но! если не знать название нужных для выборки столбцов, то придётся вытягивать все SELECT * FROM - но тогда какой смысл? Если только для переноса в новый файл (XLSX), например. Может у вас есть другая выгрузка, которую вы можете открыть и сможете удалить все данные из этого файла и показать нам. Нам важно название листа и название нужных столбцов в файле, т.е. оставьте только шапку таблицы, а данные нам не нужны
Yerkanat A., вы можете сделать для нас небольшой пример вашего файла (название листа, название столбцов, которые надо вытащить) ?
Изменено: New - 17.09.2021 01:37:24
 
Для получения даных из файла попробуйте создать запрос с помощю Power Query
Power Query - бесплатная надстройка для MS Excel 2010

С его помощю сможете выгрузить нужные столбци и сохранить в модель или в отдельную таблицу
 
Цитата
Yerkanat A. написал:
10м офисом
ворочал файлы и побольше и не на "супер компах" (в т.ч. на более слабом чем на скрине)

Пример сейчас глянул = открыл за ~50 сек:
.xlsx
739246 строк * 26 столбцов (9 столбцов из них формульные)
(при этом получаю я файлы исходные в .xls (в 19 столбцов но было и под лям строк) они размером изначально еще явно больше и тоже открываются (но дольше, но открываются)

Пробуйте открыться в 2016-м офисе на х64 винде
Изменено: andylu - 17.09.2021 09:30:06
 
Цитата
New написал:
Но! если не знать название нужных для выборки столбцов, то придётся вытягивать все SELECT * FROM
можно по номерам: f1,f2 и т.д. Но! Если знать номера  :D  
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
По моему опыту, тормоза в файле от чего угодно, но только не от самих данных:
  • формулы, связи — отключаем автопересчёт и обновление связей при открытии (есть ещё опция при открытии макросом)
  • Условное Форматирование, обычное форматирование, стили, пользовательские форматы - часто избыточно, надо чистить или полностью удалять
  • именованные диапазоны, проверка данных - в них часто могут сидеть ссылки на сайты и прочие связи, не видимые в команде "Изменить связи" вкладки "Данные" — решается удалением имён и проверок
Пример из жизни
Изменено: Jack Famous - 17.09.2021 09:56:57
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
еще вариант это открыть его в PowerPivot затянув только нужные столбцы, а потом выгрузить его на лист.

из вариантов уменьшения размера самого файл это сохранение его в формат .xlsb
 
Цитата
marker_mc написал:
из вариантов уменьшения размера самого файл это сохранение его в формат .xlsb
и что это даст, кроме более компактного хранения?

Еще раз,
Цитата
Yerkanat A. написал:
имеется excel файл в формате xls размером ~180мб - это около 25 столбцов и ~400тыс строк
как получить 400 000 строк в xls????
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ: как получить 400 000 строк в xls
привет, дядь Миш ;)
Мне как-то рассказывали, что, мол, на самом деле в xls то же количество строк, что и в xlsx, только они закрыты для доступа, который можно открыть, редактируя реестр
Разумеется, я не проверял  :D
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
Jack Famous написал:
Мне как-то рассказывали, что, мол, на самом деле в xls
я вот на столбах часто вижу, мол работа - заработок 20000 в день. Разумеется, я не проверял.

[MS-XLS]: Excel Binary File Format (.xls) Structure - 2.2.1 Cell Table
The order of the records that comprise a row block begins with a series of Row records (a maximum of 32 such records), followed by the records representing the cells, followed by the DBCell record (section 2.4.78). A cell in the cell table is referred to by its row and column indexes, which are zero-based. The maximum row index is 65535. The maximum column index is 255.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
и что это даст, кроме более компактного хранения?
уменьшение веса самого файла, вместо 180 мб будет весить условно 50мб.
но суть моего ответа была ведь не только в этом, а в том, что сперва затянуть нужны данные в PowerPivot (нужно кол-во столбцов) а уже после этого, только то что нужно грузить на лист...
и да... сразу уточнение к автор зачем в 2к21 юзать .xls в то время когда .xlsx имеет все же больше запаса прочности?
 
Цитата
БМВ: и что это даст, кроме более компактного хранения?
Цитата
marker_mc: уменьшение веса самого файла, вместо 180 мб будет весить условно 50мб.
написано же КРОМЕ ЭТОГО что даст?  :D
К тому же, уменьшение размера файла при этом не повлияет на скорость его работы, зато уменьшит совместимость (видел компы, которые не могли открыть двоичную книгу зато прекрасно открывали макрокнигу) и увеличит риск потери данных (иногда двоичная книга просто перестаёт открываться - причины не выснил)
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
да, xls лимит 64к * 256
но что внутри под файлом "xls" у автора - не известно.
в моем случае я получаю нелимитированную выгрузку по строкам под видом "xls" а по-факту = html
 
Цитата
Jack Famous написал:
написано же КРОМЕ ЭТОГО что даст?   К тому же, уменьшение размера файла при этом не повлияет на скорость его работы, зато уменьшит совместимость
не соглашусь, я наоборот стараюсь для больших файлов юзать именно этот формат, особенно там где нужна защита:
1. .xlsb нет программ которые могут взломать от него пароль.
2. как по мне он более стабильно работает и на больших файлах размером с 500 мб - я это реально ощущаю.
3. не разу не сталкивался с несовместимостью, но не спорю - вполне может быть и такое ;)
Изменено: marker_mc - 17.09.2021 13:33:15
 
Цитата
marker_mc написал:
но суть моего ответа была ведь не только в этом, а в том, что сперва затянуть нужны данные в PowerPivot (нужно кол-во столбцов) а уже после этого, только то что нужно грузить на лист...
суть ответа в том что если файл разрушен, то пляски с бубном могут только усугубить.

Вот только у меня сомнения что там не обычный текстовый CSV.
По вопросам из тем форума, личку не читаю.
 
Цитата
Jack Famous написал:
при этом не повлияет на скорость его работы
это не совсем так. Т.к. это бинарный файл, то доступ к нему тоже будет быстрее(открытие, чтение, сохранение), чем к открытому формату вроде xlsx. Другой вопрос, что это не даст гарантий поломки файла. И вот тут ты совершенно прав: восстановить бинарный файл excel-ю сложнее, чем файл открытого формата. Да и при таких объемах вряд ли удобно будет работать даже с бинарным файлом. Да и опять же: проблема автора в другом: ОТКРЫТЬ уже имеющийся файл и получить из него только часть данных. И т.к. он не может его даже открыть, то обсуждать в каком виде ему этот файл хранить бессмысленно :)
Цитата
marker_mc написал:
.xlsb нет программ которые могут взломать от него пароль
а для взлома пароля на xlsx уже есть? Я же правильно понимаю, что речь о пароле на открытие файла, а не на лист, книгу?
Цитата
marker_mc написал:
не разу не сталкивался с несовместимостью
я полагаю, тут речь о той же Power Query - она не любит двоичный формат и часто отказывается с ним работать.
Изменено: Дмитрий(The_Prist) Щербаков - 17.09.2021 13:37:12
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Программы для взлома xlsb есть, тупо брут-форсят, но очень медленно (количество паролей в секунду намного меньше, чем у xlsx)
 
Цитата
New написал:
Программы для взлома xlsb есть, тупо брут-форсят
ну о брут-форсе и вовсе речи не идет - так как это утопия))) он ветка не об этом, поэтому закрыли эту тему :)

Цитата
Дмитрий(The_Prist) Щербаков написал:
а для взлома пароля на xlsx уже есть? Я же правильно понимаю, что речь о пароле на открытие файла, а не на лист, книгу?
нет, я как раз имел ввиду про защиту листа/книги, если в xlsx можно просто залезть в архив и тупо вырезать защиту, то с xlsb такой номер не прокатит.
вопросом пароля файла не задавался кстати, нужно почитать.
 
эх, был бы пример файла (имя листа, имена столбцов (или их номера 1, 5, 7), то уже бы макрос какой-нибудь написали, а то всё разговоры да разговоры )
Изменено: New - 17.09.2021 15:56:26
 
Цитата
marker_mc написал:
про защиту листа/книги,
давно все есть - еще для xls придумали, а это тот же бинарник. Да, менее удобно, т.к. нужно спец прогу устанавливать. Но взломать не проблема - эти пароли никогда не были предназначены для реальной защиты конфиденциальных данных.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Хнык, куда пропал ТС? ((
Дайте нам попробовать ваш файл...
 
Добрый вечер,
Прошу прощения что пропал, сейчас аврал за авралом и все не могу вернуться к этой теме и полазить как следует, пробовал по-быстрому через power query - на мини файле работает, на самом файле ругается про не тот формат данных. Как мне сказали файлы-выгрузки по умолчанию выходят как xls потом их пересохраняют,  есть подозрение что файл ‘битый’..
Большое спасибо всем за участие и советы, на днях буду пробовать дальше по вашим подсказкам.  
Страницы: 1
Наверх