powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Быстрый экспорт в Excel
25 сообщений из 54, страница 1 из 3
Быстрый экспорт в Excel
    #39806862
Rustam Ergashev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Работаю в Delphi 7. Получил ответ на запрос в компоненту Query. Его вывожу в Эксель по строчно. Но это медленно, есть ли более быстрые метод? Вот кусочек кода
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
        qrZapros.Close;
        qrZapros.ParamByName('kod').Value:=DBLookupComboBox1.KeyValue;
        qrZapros.ParamByName('dat1').Value:=DBDateTimeEditEh3.Text;
        qrZapros.Open;

        if not qrZapros.IsEmpty then
          begin
           m:=6;
           Update;
           Cursor:=crHourGlass;
           exl:=CreateOleObject('Excel.Application');
           Workbook:=exl.Application.WorkBooks.Add(ExtractFilePath(Application.ExeName)+'report.xls');
           Sheet:=WorkBook.WorkSheets[1];
           p:=qrZapros.FieldCount;
           while not qrZapros.EOF do
             begin
              for j:=0 to p-1 do
                 Sheet.Cells(m,j+2):=qrZapros.Fields.Fields[j].Value;
              inc(m);
              qrZapros.Next;
             end;
           exl.Application.Visible:=True;
          end;
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806865
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотри тут 17749041
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806888
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rustam Ergashev,

Существуют библиотеки, позволяющие экспортировать в XLS/XLSX - файлы без наличия Excel'я на компьютере и они работают вдобавок значительно быстрее Excel'я через OLE.
Я в последнее время перешел на XLSReadWrite 20282774 . Но есть и другие, дешевле или вообще бесплатные
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806889
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
26.04.2019 15:19, Rustam Ergashev пишет:
> Работаю в Delphi 7. Получил ответ на запрос в компоненту Query.
> Его вывожу в Эксель по строчно.
> Но это медленно, есть ли более быстрые метод?

Range()
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806893
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806904
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может быть тупо разделить котлеты и мух?

Сначала выполнить нужный селект (можно даже вьюшку создать) и выгрузить его в CSV,
А потом одним махом этот CSV открть Екселем и затем навести красивости по шаблону (шрифт, цвета, форматы и т.п.)
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806912
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик Семён Rustam Ergashev,

Существуют библиотеки, позволяющие экспортировать в XLS/XLSX - файлы без наличия Excel'я на компьютере и они работают вдобавок значительно быстрее Excel'я через OLE.
Я в последнее время перешел на XLSReadWrite 20282774 . Но есть и другие, дешевле или вообще бесплатные+1
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806915
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кроик СемёнСуществуют библиотеки, позволяющие экспортировать в XLS/XLSX - файлы без наличия Excel'я на компьютере и они работают вдобавок значительно быстрее Excel'я через OLE. В том, что они работают быстрее, я не сомневаюсь. Сомневаюсь в том, что они не налажают в каких-то нетривиальных действиях.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806917
Фотография Dimonka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DevEx-овые гриды тоже умеют в эксель достаточно шустро экспортировать.
В теории можешь даже сам руками экселевские XML-сопли сгенерировать, а затем в ZIP сжать. Правда придётся слегка окунуться в разбор формата.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806920
vavan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DimonkaDevEx-овые гриды тоже умеют в эксель достаточно шустро экспортироватьа уж как они в xlsx экпортируют - просто праздник какой-то
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39806954
KreatorXXI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Rustam Ergashev,

есть вот такой проект - https://github.com/jmcnamara/libxlsxwriter. Бесплатно. Враппер на Дельфи надо поискать, может и есть.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807000
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Excel может открывать HTML и XML. Сформируйте в Excel таблицу нужного вам вида, сохраните ее в html, а потом в программе формируйте HTML аналогичной структуры простой записью в текстовый файл.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807032
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimonka,

Это теория. И зачем еще что-то замедлять ZIPами и иже?
И разбор плоской XML-таблицы всегда медленнее текстового файла.
Про девкин грид даже не упоминай. Тут надо без всяких гридов делать.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807035
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соколинский БорисКроик СемёнСуществуют библиотеки, позволяющие экспортировать в XLS/XLSX - файлы без наличия Excel'я на компьютере и они работают вдобавок значительно быстрее Excel'я через OLE. В том, что они работают быстрее, я не сомневаюсь. Сомневаюсь в том, что они не налажают в каких-то нетривиальных действиях.Согласен.
Но ведь если Исходные данные не плоские (т.е. несколько запросов а ля OLAP) Excel потом затормозит сводить измерения своими средствамиl
Нет?
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807038
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
KreatorXXI, т.е. чтобы просто создать. файл Экселя, ты предлагаешь "A C library for creating Excel XLSX files." и поискать для этой хрени "Враппер на Дельфи надо поискать, может и есть"?
А если Эксель 5, например?
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807042
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
bk0010, ну есть уже Зачем бритву точить? 21872838 можно вообще с дельфями не париться, а просто выгрузить из базы в Эксель средствами базы.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807043
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GatorСоколинский Бориспропущено...
В том, что они работают быстрее, я не сомневаюсь. Сомневаюсь в том, что они не налажают в каких-то нетривиальных действиях.Согласен.
Но ведь если Исходные данные не плоские (т.е. несколько запросов а ля OLAP) Excel потом затормозит сводить измерения своими средствамиl
Нет?
Налажать может и сам Excel, если его вызывать в многопотоковом режиме при большой нагрузке на сервер.
У XLSReadWriteII ни разу не сталкивался с тем, чтобы он налажал. При этом не требуется установка десктопного лицензионного ПО на сервер, потребление ресурсов значительно ниже, скорость генерации и количество генерируемых файлов намного выше.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807044
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gator, есть уже CSV
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807051
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2...
У XLSReadWriteII ни разу не сталкивался с тем, чтобы он налажал. При этом не требуется установка десктопного лицензионного ПО на сервер, потребление ресурсов значительно ниже, скорость генерации и количество генерируемых файлов намного выше.

"Налажать" он может еще как, ибо реализует, естественно, не "всё-всё-всё", а лишь самое нужно (по мнению разработчика), сталкивался. Но жить можно, и плюсов от его использования куда больше, чем когда его не используешь, да.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807052
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2,

Признайся, высосано из пальца.
Тем более, СУБД не озувчена, объём данных неизвестен, таблица плоская (imho)
и не путай бесплатное ПО и лицензии. Вполне можно юзать OOCalc и Libreofice.
___
И ещё вопрос. Как может налажать Эксель? Количеством строк/колонок?
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807054
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё, "всё-всё-всё" это форматирование? или эксельные формулы?
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807064
asutp2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gatorasutp2,

Признайся, высосано из пальца.
Тем более, СУБД не озувчена, объём данных неизвестен, таблица плоская (imho)
и не путай бесплатное ПО и лицензии. Вполне можно юзать OOCalc и Libreofice.
___
И ещё вопрос. Как может налажать Эксель? Количеством строк/колонок?
А ты поработай c Excel в режиме, когда обращение к нему через OLE идет через потоки, не являющиеся главным потоком приложения. При этом в винды авторизации пользователя не было (99% времени режим работы сервера). Любой выскакивающий в Excel диалог (по разным причинам) превращает его поток в тупня)))) И попробуй создать например 100 одновременно используемых экземпляров Excel через OLE.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807068
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2Gatorasutp2,

Признайся, высосано из пальца.
Тем более, СУБД не озувчена, объём данных неизвестен, таблица плоская (imho)
и не путай бесплатное ПО и лицензии. Вполне можно юзать OOCalc и Libreofice.
___
И ещё вопрос. Как может налажать Эксель? Количеством строк/колонок?
А ты поработай c Excel в режиме, когда обращение к нему через OLE идет через потоки, не являющиеся главным потоком приложения. При этом в винды авторизации пользователя не было (99% времени режим работы сервера). Любой выскакивающий в Excel диалог (по разным причинам) превращает его поток в тупня)))) И попробуй создать например 100 одновременно используемых экземпляров Excel через OLE.

Из той же серии - работа с OLE под управлением виндовз-сервисов.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807071
Соколинский Борис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2А ты поработай c Excel в режиме, когда обращение к нему через OLE идет через потоки, не являющиеся главным потоком приложения. Пробовал.
Не помню сколько инстанций одновременно крутилось (сильно меньше 100), но это непринципиально.
...
Рейтинг: 0 / 0
Быстрый экспорт в Excel
    #39807074
Фотография Gator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asutp2,

Во-первых я отключаю диалоги и алерты в ехсelе сразу.
А во-вторый мои MSSQL общаются С MSExcel своисм средствами (linked serveh (OLE DB)
А в-третьих BCP тоже умеет результаты запроса выгружать в CSV/
___
Повторяю. CSV достаточно. Дельфи лишняя.
...
Рейтинг: 0 / 0
25 сообщений из 54, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Быстрый экспорт в Excel
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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