2 / 2 / 3
Регистрация: 01.03.2015
Сообщений: 131

Экспорт в Excel

21.10.2015, 19:33. Показов 14581. Ответов 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
9951 / 6486 / 2461
Регистрация: 21.01.2014
Сообщений: 27,481
Записей в блоге: 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
9951 / 6486 / 2461
Регистрация: 21.01.2014
Сообщений: 27,481
Записей в блоге: 3
16.05.2020, 13:05
Цитата Сообщение от SHARKCLOUD Посмотреть сообщение
это гениальное решение!
Но далеко не самое практичное: обходить все компоненты на форме, чтобы обработать часть из них...
Очень похоже на то, что ситуацию улучшит класс-перехватчик, но об этом volvo может гораздо лучше рассказать...
Цитата Сообщение от SHARKCLOUD Посмотреть сообщение
Такие примеры там освещаются?
Да, у Архангельского этот прием точно практиковался... Вот только не помню уже для какой среды: то ли для Билдера, то ли для Дельфи...
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33465 / 21564 / 8249
Регистрация: 22.10.2011
Сообщений: 37,017
Записей в блоге: 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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru