powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Есть идея работать над дьявольски быстрым генератором XLSX
25 сообщений из 112, страница 3 из 5
Есть идея работать над дьявольски быстрым генератором XLSX
    #37391960
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Автор, очевидно, строго ограничен форматом XLSX (или сам себя ограничил?), но если кого-то интересует максимально быстрое чтение файла Экселем (или минимальное суммарное время операций экспорта в своей программе и открытия в Экселе), то я бы на его месте все же проверил бы варианты BIFF12, SYLK и, для полноты, HTML. Это если нужно преодолеть порог 64K строк, иначе - BIFF8.
сайт МикрософтIn addition to the new XML-based file formats, Office Excel 2007 also introduces a binary version of the segmented compressed file format for large or complex workbooks. This file format, the Office Excel 2007 Binary (or BIFF12) file format (.xls), can be used for optimal performance and backward compatibility.(правда, я не понял, если у BIFF12 расширение ".xls", то что тогда за формат у файлов ".xlsb", может быть, здесь ошибка и ".xls" - это всегда BIFF8 или старее??)

Кстати, автор как-то вдруг неожиданно упомянул о необходимости чтения (или "дьявольски быстрого парсинга"?) XLSX, но ведь это уже вторая, отдельная задача.
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37391963
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще "for large or complex workbooks" в цитате забыл жирным выделить
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37391970
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xen2я бы на его месте все же проверил бы варианты BIFF12, SYLK и, для полноты, HTMLв смысле, хотя бы на время открывания Экселем протестировал (и, для последних двух, на способность преодоления границы в 64К строк) - жаль что сам сейчас не могу
xen2здесь ошибка и ".xls" - это всегда BIFF8 или старее?да, в другом месте Микрософт так и пишет (XLSX = BIFF12, XLS = BIFF8 or BIFF5)
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37391973
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
*xlsb=biff12 (сорри, проснулся не до конца)
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392080
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
XLSX - это всегда XML-формат файла,
XLSB - это бинарный формат файла, BIFF12
XLS - это всегда BIFF8

По крайней мере, так по умолчанию.
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392110
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
defecator, я-то уже сам понял, но спасибо

кстати, XLSB/BIFF12 - тоже зазипованная кучка файлов, так что то, что Эксель будет открывать его быстрее всех остальных вариантов - под вопросом
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392115
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorТолько поддержка в FlexCel VCL НЕ реализована для XLXS.
Это есть только в версии FlexCel .Net
это да, пока только ожидается
а в остальном сколько я помню flex самый самый :)
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392124
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xen2Автор, очевидно, строго ограничен форматом XLSX (или сам себя ограничил?)

Кроме этого ограничения - генерация самим MS Office, а не сторонними прогами + кодировка utf-8(рус). Связанно с тем что:
- все у нас на работе пользуются этим форматом
- самые большие xml (листы, shared strings) наглядны и позволяют распарсиваться и сохраняться без типичного xml парсера, а значительно быстрее
- xml понятны, и разобраться в них проще чем в других

А жёсткая ориентация - только для быстрейшей (как я уже сказал "дьявольской") оптимизации. Предстоит обработка миллионов ячеек и я хочу обрабатывать их за пару секунд, а не минут. Открывать, обрабатывать, сохранять, закрывать
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392125
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xlsb/biff12, неофиц. описание и код на c++/c#:
http://www.arstdesign.com/articles/office2007bin.html
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392143
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUОткрывать, обрабатывать, сохранять, закрыватьах, вот оно что
а экселевский макрос с этим не справится? ведь тогда, считай на времени открытия/сохранения можно сэкономить - то есть не сохранять и не открывать, результат-то человек ведь хочет увидеть, который в экселе работает?
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392153
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну и как бы напрашивается идея вместо того, чтобы подставлять костыли Экселю, сделать свою автономную программу с базой данных
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392174
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xen2ах, вот оно что
а экселевский макрос с этим не справится?

Excel открывается/сохраняется долго. Макросы в многих случаях использовать неудобно - проще аналитику и анализ данных делать в Delphi. Да и быстрее. Ну а с данными Excel-я быстрее работать через VarArray чем обращаться к ячейкам внутри макроса. Так что
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392206
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOU, я просто суть вашего "потока данных" и последовательности работы людей с ним не понял

то есть, человек набивает данные, сохраняет файл, он где-то себе лежит (долго-долго), ваша программа его открывет-обрабатывает-сохраняет (быстро-быстро), потом он опять лежит, пока его человек не захочет в экселе открыть
что-то такое вырисовывается, но как-то очень странно выглядит

мне представляется такой вариант: человек забил данные, и ему сразу нужен результат, он нажал кнопочку и получил его в этом же открытом документе, ничего не сохраняя и не открывая
это совсем не то?
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392225
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUс данными Excel-я быстрее работать через VarArray чем обращаться к ячейкам внутри макросавы точно проверили, что вариант с OLE-обменом информацией будет медленнее, чем хотя бы просто сохранение и открытие XLSX в Экселе плюс время обработки в вашей программе-обработчике даже без открытия и сохранения ей XLSX?? (впрочем, примерную оценку для времени открытия/сохранения стоит сделать и приплюсовать)
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392239
SOFT FOR YOU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>я просто суть вашего "потока данных" и последовательности работы людей с ним не понял
а зачем вам это понимать

>вы точно проверили, что вариант с OLE-обменом информацией будет медленнее
точно
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392242
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
SOFT FOR YOU >я просто суть вашего "потока данных" и последовательности работы людей с ним не понял
а зачем вам это понимать

>вы точно проверили, что вариант с OLE-обменом информацией будет медленнее
точно

Не точно. Либо готовить OLE не умеешь.

Вставка ста тысяч записей через OLE занимает полсекунды примерно.
Чуть позже тест выложу.
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392269
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUExcel открывается/сохраняется долго.а вот здесь Вы что имели в виду?
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392276
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SOFT FOR YOUа зачем вам это пониматьесли честно - сомневаюсь в правильности постановки задачи
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392284
Фотография Мигалка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот ещё можно попробовать:
http://connectionstrings.com/excel-2007
Код: plaintext
Provider=Microsoft.ACE.OLEDB. 12 . 0 ;Data Source=c:\myFolder\myExcel2007file.xlsx;Extended Properties="Excel 12.0 Xml;HDR=YES";
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392350
xen2SOFT FOR YOUа зачем вам это пониматьесли честно - сомневаюсь в правильности постановки задачи

У него очень простая задача. Он уже начал писать свой чудо компонент на ассемблере, чтоб
XLSX файлы делать. Все остальное он будет "тупо скипать" как не относящееся к обоснованию
его задачи (XLSX на ассемблере).

Все, что его может спасти - это БЕСПЛАТНЫЙ компонет на ассемблере. Уже готовый.

Другие варианты отметаются.
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392375
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надеюсь, он хоть не рассчитывает после этого сказочно обогатиться на продажах своего чудо-компонента :D
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392378
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
хотя ник настораживает
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392379
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На самом делеxen2пропущено...
если честно - сомневаюсь в правильности постановки задачи

У него очень простая задача. Он уже начал писать свой чудо компонент на ассемблере, чтоб
XLSX файлы делать. Все остальное он будет "тупо скипать" как не относящееся к обоснованию
его задачи (XLSX на ассемблере).

Все, что его может спасти - это БЕСПЛАТНЫЙ компонет на ассемблере. Уже готовый.

Другие варианты отметаются.

Достаточно поглядеть, в каких темах он был активен ДО того, как начал писать в тему по Delphi:

автор Microsoft Office 18 40,91%
Visual Basic 16 36,36%
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392390
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старперы радуютfd00chпропущено...
Вопрос - зачем все данные держать в оперативке? Нормальные БД такое количество "ячеек" могут и хранить, и обрабатывать на обычных компах

Excel держит данные в памяти. Речь шла о нем, а не о БД.Память - она виртуальная, со всеми вытекающими последствиями.
...
Рейтинг: 0 / 0
Есть идея работать над дьявольски быстрым генератором XLSX
    #37392399
xen2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну, если автор переползает с VB на Дельфи или хотя бы смотрит в эту сторону, я думаю, ему могло бы быть гораздо интереснее написать автономную БД-аппликуху как полную замену всего того, что сейчас в экселе

мне вот мою первую БД в Дельфи было очень даже прикольно писать
...
Рейтинг: 0 / 0
25 сообщений из 112, страница 3 из 5
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Есть идея работать над дьявольски быстрым генератором XLSX
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]