Форум программистов, компьютерный форум, киберфорум
Delphi: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 5

Экспорт или отчет в excel

25.06.2012, 00:17. Показов 2572. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте Дорогие Программисты! Помогите пожалуйста с БД сделанной в Ассес. На второй форме размещено mainmenu. в нем файл-открыть-три таблицы на выбор, после выбора открывается третья форма.В ней 3 ADOtable, 3 datasource и один DBGrid. Открывается одна из трех таблиц в третьей форме. Как лучше сделать экспорт данных таблицы в иксель? если можно кнопку печать еще желательно=) можете написать процедуру. и с фильтрацией не разобрался как делать по таблице? Заранее спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.06.2012, 00:17
Ответы с готовыми решениями:

Экспорт Paradox в Word или в Excel
Здравствуйте, как экспортировать данные из Paradox в Word или Excell, подскажите пожалуйста как это делается очень надо((

Экспорт данных запроса или формы в шаблон Excel или Word
Все привет. Пришлось столкнуться с необходимость экспорта сформированных запросов и форм в заранее заготовленный шаблон Word или Excel....

Экспорт данных на 2-й или 3-й лист в Excel
Доброго дня подскажите как можно реализовать экспорт данных из DGV в файл Excel на второй и последующие листы. пытаюсь применить...

3
Эксперт Pascal/Delphi
 Аватар для xxbesoxx
1135 / 616 / 129
Регистрация: 13.02.2009
Сообщений: 3,602
25.06.2012, 02:22
Цитата Сообщение от Rizabek Посмотреть сообщение
Здраствуйте Дорогие Программисты! Помогите пожалуйста с БД сделанной в Ассес. На второй форме размещено mainmenu. в нем файл-открыть-три таблицы на выбор, после выбора открывается третья форма.В ней 3 ADOtable, 3 datasource и один DBGrid. Открывается одна из трех таблиц в третьей форме. Как лучше сделать экспорт данных таблицы в иксель? если можно кнопку печать еще желательно=) можете написать процедуру. и с фильтрацией не разобрался как делать по таблице? Заранее спасибо
1. экспорт данных таблицы в иксель

Добавите uses ---> ComObj,
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
procedure TForm2.SpeedButton5Click(Sender: TObject);
var
XLapp, Sheet, Colum:Variant;
index,i:Integer;
begin
 XLApp:= CreateOleObject('Excel.Application');
 XLApp.Visible:=true;
 XLApp.Workbooks.Add(-4167);
 XLApp.Workbooks[1].WorkSheets[1].Name:='Отчёт';
 Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Columns;
 
 Colum.Columns[1].ColumnWidth:=18;
 Colum.Columns[2].ColumnWidth:=18;
 Colum.Columns[3].ColumnWidth:=18;
 Colum.Columns[4].ColumnWidth:=18;
 Colum.Columns[5].ColumnWidth:=18;
 Colum.Columns[6].ColumnWidth:=18;
 Colum.Columns[7].ColumnWidth:=18;
 Colum.Columns[8].ColumnWidth:=18;
 Colum.Columns[9].ColumnWidth:=10;
 
 Colum:=XLApp.Workbooks[1].WorkSheets['Отчёт'].Rows;
 Colum.Rows[2].Font.Bold:=true;
 Colum.Rows[1].Font.Bold:=true;
 Colum.Rows[1].Font.Color:=clBlue;
 Colum.Rows[1].Font.Size:=10;
 Colum.Rows[2].Font.Size:=10;
 Colum.Rows[3].Font.Size:=10;
 Colum.Rows[4].Font.Size:=10;
 Colum.Rows[5].Font.Size:=10;
 Colum.Rows[6].Font.Size:=10;
 Colum.Rows[7].Font.Size:=10;
 Colum.Rows[8].Font.Size:=10;
 Colum.Rows[9].Font.Size:=10;
 Colum.Rows.Font.Name:=' MS Sans Serif';
 
 Sheet:=XLApp.Workbooks[1].WorkSheets['Отчёт'];
 Sheet.Cells[1,2]:=',,База наши сотрудника"  '+DateToStr(Date);
 Sheet.Cells[2,1]:='Фамилия';
 Sheet.Cells[2,2]:='Имя';
 Sheet.Cells[2,3]:='Отчество';
 Sheet.Cells[2,4]:='Должность';
 Sheet.Cells[2,5]:='Район проживания';
 Sheet.Cells[2,6]:='Адрес прописки';
 Sheet.Cells[2,7]:='Дата рождения';
 Sheet.Cells[2,8]:='Дата поступления';
 Sheet.Cells[2,9]:='Зарплата';
 
 index :=3;
 
Form2. ADOTable1.First;
for i:=0 to Form2. ADOTable1.RecordCount-1 do
  begin
   Sheet.Cells[index,1]:= Form2. ADOTable1.Fields.Fields[1].AsString;
   Sheet.Cells[index,2]:= Form2. ADOTable1.Fields.Fields[2].AsString;
   Sheet.Cells[index,3]:= Form2. ADOTable1.Fields.Fields[3].AsString;
   Sheet.Cells[index,4]:= Form2. ADOTable1.Fields.Fields[4].AsString;
   Sheet.Cells[index,5]:= Form2. ADOTable1.Fields.Fields[5].AsString;
   Sheet.Cells[index,6]:= Form2. ADOTable1.Fields.Fields[6].AsString;
   Sheet.Cells[index,7]:= Form2. ADOTable1.Fields.Fields[7].AsString;
   Sheet.Cells[index,8]:= Form2. ADOTable1.Fields.Fields[8].AsString;
   Sheet.Cells[index,9]:= Form2. ADOTable1.Fields.Fields[9].AsString;
   Inc(index);
   Form2. ADOTable1.Next;
 
end;
2. можно кнопку печать еще желательно = Можно для этого есть несколько компоненты Rave report, Quick report, Fast report какой вы знайте ? с какого для вас удобно ?
 Комментарий модератора 
Теги кода добавлены модератором. По правилам форума, код должен быть оформлен соответствующими тегами. Для оформления кода Delphi следует выделить этот код и на панели редактирования сообщения нажать кнопку: "DELPHI".
1
0 / 0 / 0
Регистрация: 18.06.2012
Сообщений: 5
25.06.2012, 05:51  [ТС]
RESPECT and uvajuha=)) Jelau vam uspehov vo vsem
0
 Аватар для rdama
569 / 292 / 12
Регистрация: 28.01.2011
Сообщений: 1,326
25.06.2012, 08:39
Я бы лучше воспользовался выгрузкой через вариантный массив.
Т.к. тогда абсолютно не имеет значения размерность таблицы(в плане количества полей).
Т.е. процедура является более универсальной нежели, та что приведена. Отсутствует необходимость
описывать строку заголовка. В приведенном варианте вам придется это делать для каждой таблицы из 3. Что с точки зрения решения вашей задачи
Цитата Сообщение от Rizabek Посмотреть сообщение
сделать экспорт данных
Цитата Сообщение от xxbesoxx Посмотреть сообщение
одна из трех таблиц
Цитата Сообщение от Rizabek Посмотреть сообщение
в иксель
совсем не верно и не логично.

Добавлено через 57 минут
Вот порылся в исходниках и нашел.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
procedure TForm1._ds_export(DS: TDataSet);
var
 XL, XArr: Variant;
 i: Integer;
 j: Integer;
begin
  XArr:=VarArrayCreate([1,DS.FieldCount],varVariant);
  XL:=CreateOLEObject('Excel.Application');
  XL.WorkBooks.add;
  XL.visible:=true;
  i := 1;
  while i<=DS.FieldCount do
  begin
    XArr[i] := DS.Fields[i-1].FullName;
    Inc(i);
  end;
  XL.Range[XL.Cells[1,1],XL.Cells[1,DS.FieldCount]].Value:=XArr;
  j := 2;
  DS.First;
  while not DS.Eof do
  begin
    i := 1;
    while i<=DS.FieldCount do
    begin
      XArr[i] := DS.Fields[i-1].Value;
      Inc(i);
    end;
    XL.Range[XL.Cells[j,1],XL.Cells[j,DS.FieldCount]].Value:=XArr;
    DS.Next;
    Inc(j);
  end;
  XL.Range[XL.Cells[j,1],XL.Cells[j,DS.FieldCount]].select;
  XL.Workbooks[1].Sheets[1].Name := DS.Name;
end;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.06.2012, 08:39
Помогаю со студенческими работами здесь

Экспорт данных с листа Excel в файл или БД
Я начал делать программу когда вожу данные она заполняет лист 1 и 2 ведомость на этих листах,все прекрасно работало но препод сказал нужно...

Экспорт данных из ListBox в Word или Excel
Всем привет, есть ListBox в который считывает информацию из талицы в которую вносятся данные, подскажите способ экспортировать эти данные в...

Как перекинуть отчет в Word (или Excel)
Как перекинуть отчет в Word (или Excel) для последующей обработки. меня интерессует нечто вроде 'save as ..'.

Перенос отчета(или данных) с Access в отчет Excel
Доброго времени суток! Прежде всего прошу прощения, возможно я не совсем правильно выбрал тему, в таком случае прошу меня извинить и,...

Экспорт данных из запроса или таблицы используя джоб MS SQL в Excel
Добрый день. Никак не могу сделать авто-выгрузку в файлы эксель из SQL. Запрос select * from sumary_table Сама...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru