Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.88/67: Рейтинг темы: голосов - 67, средняя оценка - 4.88
2 / 2 / 3
Регистрация: 01.03.2015
Сообщений: 131

Экспорт в Excel

21.10.2015, 19:33. Показов 14537. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите пожалуйста как делать экспорт в excel?)
На форме есть ADOTable, DBGrid
Нужно при нажатии на кнопку экспортировать данные с DBGrid в Excel, как делать вообще не пойму(
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2015, 19:33
Ответы с готовыми решениями:

Экспорт из StringGrid в Excel
Доброго времени суток. Понимаю, что тема заезжанная, но мне нужна подсказка именно в таком контексте, а то я зациклилась. Вот так...

Экспорт массива в Excel
Доброго времени суток. Проблемка такая: У меня есть пару гигабайт данных в массиве, которые нужно перегнать в Excel. Все работает пока я...

Экспорт картинки в Excel
Добрый день! На форме имеется image, как отправить содержимое в Excel в указанное место, например: "A1:C10"? Добавлено...

25
 Аватар для SHARKCLOUD
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 14
15.05.2020, 19:13
Студворк — интернет-сервис помощи студентам
D1973, я только наткнулся на ваш пример с 100500 едитами и обработчиком в одном из них - это просто открытие, я в тотальном шоке! Ну кто бы это рассказал раньше! Я никогда не мог понять как написать метод, чтобы в него можно было передать как параметр имя компонента, ведь оно у всех разное, а тут * помогает в этом, как оказалось! Но еще и ->Tag - тут тоже надо понять что к чему... И то, как вы везде добавили "Edit1KeyPress" - впечатляет!

Добавлено через 28 минут
D1973, Если можно, то подскажите, как тогда ко всем Edit применить отступ на 3 пикселя слева? Я делаю это для каждого в отдельности:
C++
1
2
3
4
5
6
7
8
9
10
11
12
    //Установка отступа слева на 3 px
    SendMessage(Edit_Border_Width->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Grid_Width->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Ver_Width->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Hor_Width->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Weeks_Width->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Row_Height->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Col_Width->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Font_Size->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Tabs_Width->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Fixed_Col_Width->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
    SendMessage(Edit_Fixed_Row_Height->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
0
Модератор
 Аватар для D1973
9943 / 6478 / 2460
Регистрация: 21.01.2014
Сообщений: 27,460
Записей в блоге: 3
16.05.2020, 06:35
Цитата Сообщение от SHARKCLOUD Посмотреть сообщение
как тогда ко всем Edit применить отступ на 3 пикселя слева?
Например, вот так:
C++
1
2
3
4
5
6
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   for(int i = 0; i < ComponentCount; i++)
     if(Components[i]->ClassNameIs("TEdit"))
       SendMessage(dynamic_cast<TEdit*>(Components[i])->Handle, EM_SETMARGINS, EC_LEFTMARGIN, (LPARAM)MAKELONG(3, 0));
}
1
 Аватар для SHARKCLOUD
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 14
16.05.2020, 12:00
D1973, благодарю, это гениальное решение! Я использую C++ Builder только для собственных программ, то есть любитель, но базовые знания о нем приобрёл ещё давно во время учёбы... Но не читал специализированной литературы прямо основательно, а-ля Архангельского, Культина... Такие примеры, как у вас, там освещаются? Как вы пришли к таким решениям?
0
Модератор
 Аватар для D1973
9943 / 6478 / 2460
Регистрация: 21.01.2014
Сообщений: 27,460
Записей в блоге: 3
16.05.2020, 13:05
Цитата Сообщение от SHARKCLOUD Посмотреть сообщение
это гениальное решение!
Но далеко не самое практичное: обходить все компоненты на форме, чтобы обработать часть из них...
Очень похоже на то, что ситуацию улучшит класс-перехватчик, но об этом volvo может гораздо лучше рассказать...
Цитата Сообщение от SHARKCLOUD Посмотреть сообщение
Такие примеры там освещаются?
Да, у Архангельского этот прием точно практиковался... Вот только не помню уже для какой среды: то ли для Билдера, то ли для Дельфи...
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33451 / 21551 / 8248
Регистрация: 22.10.2011
Сообщений: 37,004
Записей в блоге: 12
16.05.2020, 13:43
SHARKCLOUD, если надо для всех Edit-ов, лежащих на форме, без исключения - то вот так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// добавляем перехватчик прямо перед классом формы в *.h файле:
namespace Offset_Edit
{
    class TEdit : public Stdctrls::TEdit
    {
    protected:
        virtual void __fastcall CreateWnd()
        {
            Stdctrls::TEdit::CreateWnd();
            ::SendMessage(Handle, EM_SETMARGINS, EC_LEFTMARGIN, LPARAM(MAKELONG(3, 0)));
        }
    };
}
#define TEdit Offset_Edit::TEdit
 
// тут класс формы, без изменений
class TForm1 : public TForm
// ...
, и не нужны никакие циклы, автоматически при создании окна компонента ему будет будет выслано сообщение.
3
 Аватар для SHARKCLOUD
0 / 0 / 0
Регистрация: 13.05.2020
Сообщений: 14
17.05.2020, 13:25
D1973, volvo, большое спасибо! Очень познавательно и удобно! Конечно, я вряд ли могу сказать, что 10-15 Edit-ов на форме это много или мало, но тем не менее, чтобы не забыть каждому прописать отступ - это удобный метод! Я, правда, долго искал, как выровнять текст в Edit по высоте, но так и не нашёл, возможно, нужно содать отдельную тему...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.05.2020, 13:25

Экспорт в EXCEL
Доброго времени суток всем. Знаю, в интернете полно информации ою экспорте из DBGrid в EXCEL, но я решил сам разобраться и сделать его...

Экспорт из DBGrid1 в Excel
Здравствуйте дорогие форумчане. Есть рабочая программа, где работает Экспорт в Excel, но только через Мемо: Variant vVarApp,...

DBGridEh экспорт в Excel
Привет, как пользоваться функцией экспорта в С++ ? #include &quot;DBGridEhImpExp.h&quot; ..... SaveDBGridEhToExportFile() #include...

Экспорт из DBGrid в Excel
Здравствуйте!!! кто-нить может подсказать как вывести инфу из DBGrid в excel ???

Экспорт данных в Excel
Добрый день! Знаю что затертая тема, но такая ситуация, сделал все бд, осталось только вывести несколько табличек в Excel или Word (лушче в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
сукцессия 6. Питон реализация энилоджиковской модели, картинка про Центральную часть будущей модели
anaschu 26.06.2026
Етить. ИИ мне на основе моего старого файла R создал вот эту вот хмерь на пайтоне. Это уже новая модель, модель сукцессии грибной. потоки фосфора, азота. Углерода. 5 видов организмов. Я даже. . .
Как замкнутый ядерный цикл решит проблему недостатки фосфора? Био миграция фосфора со дна океана
anaschu 26.06.2026
Биологический лифт: Концепция подъема фосфора со дна океана с помощью ЗЯТЦ Предлагаю на обсуждение альтернативу тяжелому промышленному бурению океанического дна. Вместо сложной инженерии мы можем. . .
сукцессия 5
anaschu 26.06.2026
ПЛАН РАЗРАБОТКИ математической модели сукцессии микоризных систем Переход AM → EcM (Endo + ErM) · Шумилов А. С. · ИФХиБПП РАН · Пущино · 2026 . . .
сукцессия 4
anaschu 25.06.2026
Более детализированный план разработки План доработки модели динамики микоризных симбиозов (EcM с гистерезисом) Цель: Реализовать логику переключения между эрикоидным (ErM) и эктомикоризным. . .
сукцессия 3
anaschu 25.06.2026
Примерный план работ по модели
сукцессия 2
anaschu 25.06.2026
параметризировочная калибровочная таблица будущей модели
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал (мат мет мод 29)
anaschu 23.06.2026
Многофункциональное здание: как одно здание порождает конфликты требований, которые никто не планировал Материалы для обсуждения с МГСУ · 2026 Рисунки внутри приложенного ворд файла. Что за. . .
28. Конкретное развертывание плана номер 1 из поста номер 27
anaschu 22.06.2026
Можно ли из модели получить конкретные строительные требования? Честно — напрямую из текущей модели такие ответы не получить. Но цепочка логики есть, и она не такая длинная. Где разрыв . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru