Страницы: 1 2 След.
RSS
Как хранить большие объемы данных а Excel?
 
Имеется полтора десятка текстовых файлов с цифровыми таблицами над которыми необходимо произвести математическую обработку. Каждый текстовый файл - приблизительно 150000 числовых значений. Обработка данных для каждого файла однотипная.
В настоящий момент данные со всех файлов записываю на один лист, который представляет из себя просто большое хранилище чисел, и по мере необходимости переношу данные на другой лист, где прописана вся математика.
Проблема в том, что текстовый файл с таблицей данных из первоначальных 2...2,5Мб при попадании на лист excel сразу дает прирост xls файла 10..12Мб, и когда загруженных таблиц набирается с десяток, екселевский файл становится неподъемным. Excel 2003. Существует ли какой-нибудь способ хранить данные внутри xls файла компактно, и доставать их только по мере необходимости?
Есть ли смысл хранить исходные файлы в виде внедренных объектов или можно это сделать проще?
 
есть смысл хранить данные так, чтобы с ними можно было работать
а внутри файла Excel цифровые данные лучше всего хранить в ячейках листов (не зависимо от обьема самих данных)
Изменено: Ігор Гончаренко - 18.12.2019 05:54:07
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
smr801,  Вы покажите ваш текстовый файл (первые 10-20 строк) и как вы его в Excel используете. Тогда можно что-то советовать.
По вопросам из тем форума, личку не читаю.
 
Написал 30 строк файла, хотя и не понимаю, как это может помочь найти оптимальное решение. Таких строк может быть больше 15000. По использованию данных вопросов нет, есть исключительно по хранению. Пока что наилучший, вариант, который мне видится - загружать файлы в excel, обрабатывать их, результаты сохранять, исходные данные, которые дают наибольший вклад в вес файла, стирать. Копии файлов в виде OLEObject оставлять внутри excel-файла, для того, чтоб в случае необходимости их можно было бы вручную выгрузить из xls наружу и уточнить расчеты.
 
Судя по всему, лишних данных в таблице нет.
Цитата
БМВ написал:
и как вы его в Excel используете
это относилось к тому что есть разница как хранить в тексте или в числах эти данные. Хотя разница не огромна - но есть. Я размножил данные на 15000 строк.
По вопросам из тем форума, личку не читаю.
 
smr801,
я по-прежнему утверждаю, что данные в Excel хранятся в ячейках листов Excel
и маленькие и большие обьемы хранятся именно так, в ячейках листов Excel, альтернативы нет!
понимаете, как Советском Союзе плакаты призывали нас "летайте самолетами Аэрофлота!", как будто из Москвы во Владивосток можно было долететь чем-то другим. альтернативы не было. так и с хранением данных в Excel.
правда есть один экзотический способ - можно хранить данные в модулях Excel, только не знаю чем он вам поможет

поэтому если вопрос "как хранить данные в Excel?" - то храните их в ячейках листов,  других вариантов нет
а если вопрос в чем-то другом, то создайте новую тему и задайте его там
удачи!
Изменено: Ігор Гончаренко - 20.12.2019 09:03:55
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
smr801: Существует ли какой-нибудь способ хранить данные внутри xls файла компактно, и доставать их только по мере необходимости?
Хранение файлов и файловый менеджер в файле(листе) Excel
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Путь на работу и работа отвлекли :-)

smr801, У вас есть желание хранить все в одном  - так? Если да то допускаю что решение из №7 и поможет, в том числе и в случае перехода на более свежие продукты Excel. но я б рекомендовал пересмотреть работу и забирать данные из файла , который лежит рядом, запросом MSQuery или через VBA на лист. Автоматизировать выбор файла  и саму загрузку очень просто.
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
переход на более свежие продукты Excel.
Это точно поможет. Как уже показала практика при пересохранении формата хls в xlsx размер файла уменьшается в 1,5 - 2 раза. Не знаю с чем это связано (т.к. не являюсь профессионалом в этой области) - но реально работает. Постоянно пользуюсь этим. И Excel будет быстрее загружать данные.
Изменено: Андрей_26 - 20.12.2019 11:37:22
 
Андрей_26, а xlsx в xlsb сохранять не пробовали? Вас ждут еще открытия ;)
Вот горшок пустой, он предмет простой...
 
и главное открытие - данные как лежали в ячейках, так там и лежат, в каком бы формате не был сохранен файл
Изменено: Ігор Гончаренко - 20.12.2019 11:42:01
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Андрей_26, PooHkrd,  Обратите внимание
Цитата
smr801 написал:
Excel 2003
что означает возможность использование этих форматов, только после установки пакета совместимости. А так то конечно да
По вопросам из тем форума, личку не читаю.
 
БМВ, да я обратил, и Андрей тоже обратил, он же и писал что ТС поможет переход на более свежие версии офиса.
Кстати, про пакет совместимости я и подзабыл, а оно позволяло только считывать инфу из свежих форматов, или редактировать тоже можно?
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
Андрей_26 , а xlsx в xlsb сохранять не пробовали? Вас ждут еще открытия
Да действительно ! Супер. Единственное обратил внимание - что чем более сжат файл - тем медленнее работают макросы (
 
потому что сжат он строго для хранения, а при открытии разворачивается в ПОЛНЫЙ рост
и работает Excel со своим стандартным родным файлом, без всякого сжатия.
и соотв. чем сильнее был жжат и радовал вас размером на диске меньше 2 ГБ, тем в "большую дуру" развернется при открытии файла и тем медленнее с ним работает Excel
а макросы работают медленно, не от степени сжатия файла, от того как грамотно написаны, и каких габаритов открытые на момент работы макроса файлы, сколько оперативной памяти сожрали а сколько осталось для маневров (память не резиновая)
Изменено: Ігор Гончаренко - 20.12.2019 12:40:00
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
PooHkrd, Уже не помню, но кажется можно.
Цитата
Андрей_26 написал:
чем более сжат файл - тем медленнее работают макросы
Вам показалось или это только влияние при открытии файла. Файл распаковывается и загружается в памятью. Дальнейшее обращение к файлу только при записи.
По вопросам из тем форума, личку не читаю.
 
Цитата
Андрей_26 написал:
тем медленнее работают макросы
про это не в курсе, да и выше уже ответили, но зато во всех статьях про форматы отмечают что при работе с xlsb быстрее работают формулы, т.к. данные хранятся в родном для Экселя формате и их не нужно преобразовывать на лету при обращении к файлу. Не знаю как это может сказываться при работе с открытым файлом где содержимое уже в памяти, наверное это касается формул, которые умеют таскать данные из закрытых файлов.
Вот горшок пустой, он предмет простой...
 
Цитата
Ігор Гончаренко написал:
я по-прежнему утверждаю, что данные в Excel хранятся в ячейках листов Excelи маленькие и большие обьемы хранятся именно так, в ячейках листов Excel, альтернативы нет!
Строго говоря это не так. П.7 это доказывает. Я хочу хранить в книге библиотеку или другой какой либо ресурс, размером более 65 тыс.байт, и формате отличной от unicode-string. В данном случае хранение в ячейках это плохое решение, хотя существует и такой вариант. Почему плохое? Надёжность данных, скорость работы упаковщика, инкапсуляция.
«Бритва Оккама» или «Принцип Калашникова»?
 
Цитата
Ігор Гончаренко написал:
других вариантов <хранения> нет
Игорь, а мы ведь можем, например, и в именах что-нибудь хранить )
 
И не только, еще в ресурсах, к примеру картинки, или в коде VBA (по факту это тоже лишь набор символов).
«Бритва Оккама» или «Принцип Калашникова»?
 
да, понятно, в файле все храниться согласно структкры файла, однозначно файл не расчерчен на клеточки, и у некоторых есть границы, а у некоторых нет
автор задает вопрос "как хранить", а вопрос-то наверняка не о том как хранить, а о том как их обрабатывать, что бы Excel не умирал сразу, как только открыл файл
большие обьемы хранить желательно в базах, данные в Excel получать запросами
только это не имеет никакого отношения к вопросу, который звучит в теме:
Цитата
smr801 написал:
Как хранить большой объем цифровых данных внутри файла excel?
и у меня, реально, такие же большие сомнения, как обьем цифровых данных у автора, что вопрос не в том, как хранить, а как с ними работать, чтобы Excel не умирал
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
smr801, Есть еще одна возможность сильно уменьшить файл, это загрузить данные только с делением по строкам, а разбивать по ячейкам в строках только для обработки. тот же объем данных в 15000строк

564кб в сравнении с 2718

Цитата
Ігор Гончаренко написал:
что вопрос не в том, как хранить, а как с ними работать, чтобы Excel не умирал
Игорь, с учетом 2003 и желания хранить все в одном, могу предположить, что объем вреден например для пересылки по E-Mail. можно прикинуть что данных больше и даже при сжатии файл уже не пролезает в лимиты пересылки. Я не поддерживаю решения ТС, но возможно он просто ищет варианты как достигнуть результата в условиях определенных рамок.
Изменено: БМВ - 20.12.2019 18:20:32
По вопросам из тем форума, личку не читаю.
 
Игорь здесь прав.  Надо тему переименовать.
Одно плохо -  наука недополучила философа :)
 
Цитата
vikttur написал:
Надо тему переименовать.
ну разве что цифровых убрать. и так понятно что данные оцифрованы. А числовые они или текстовые, а может и бинарные  это вопрос иной.
По вопросам из тем форума, личку не читаю.
 
Доброго времени, суток друзья!
Удачи всем в окружающих делах!

Нужна помощь! На дня столкнулся с проблемой. При копировании таблицы из MS SQL Server Managment Studio, EXCEL начал разбивать данные на несколько строк. Раньше такого не было!
А если подключаешься к базе и данные тянуться оттуда, то все нормально

Заранее благодарю!
С Уважением, Михаил!
Изменено: mv-alexeenko - 20.12.2019 18:43:27
 
Цитата
vikttur написал:
Надо тему переименовать.
а вот после #25 наверно соглашусь :-)
По вопросам из тем форума, личку не читаю.
 
mv-alexeenko, Ваш вопрос имеет отношение к этой теме?
 
Цитата
Ігор Гончаренко написал:
макросы работают медленно, не от степени сжатия файла, от того как грамотно написаны,
Лично попробовал. Взял выгрузку на 25 000 строк формата xls, пересохранил в еще два формата xlsx и xlsb. Запустил один и тот же макрос в этих файла. Самый быстрый результат отработки был в xls, потом xlsx и затем xlsb. Можете сами проверить.
 
вот и покажите, то что лично пробовали, потому что пока это только слова
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Off
Андрей_26, На сколько было различие? Сколько раз проводился опыт?
В идеале - все иные приложения закрыты, загружены все три файла, макрос выполняется несколько раз в каждом из них.
По вопросам из тем форума, личку не читаю.
Страницы: 1 2 След.
Наверх