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

прога для заполнения шаблона

06.10.2009, 12:55. Показов 2375. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
погите с кодом! нужна прога для заполнения шаблона. должно быть не менее 4 полей для ввода
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.10.2009, 12:55
Ответы с готовыми решениями:

Почему в офисе 97 прога заполнения шаблона ворда из файла екселя работает корректно, а в офисе 2000 нет?
люди подскажите почему в офисе 97 прога заполнения шаблона ворда из файла екселя работает корректно, а в офисе 2000 нет. не заменяет нужные...

Прога для заполнения лотерейных билетов
Вопрос вот в чем: положим у меня обычный принтер. А бланк(к примеру лотерёйный билет) меньше чем A4. ак я могу учесть это в коде программы!

Прога для создания Шаблона
Привет всем!!!! Хочу сделать сайт а вот шаблон толком и не знаю как сделать вручную это долго и мучительно.А готовые стоят уже на кучах...

5
 Аватар для apocalypce
9 / 9 / 0
Регистрация: 08.08.2009
Сообщений: 47
06.10.2009, 13:05
уважаемый из вашего вопроса лично я ничего не понял! а теперь перезадайте свой вопрос: какое шаблон? и поля для ввода в каком компоненте куда вы эти значения водить собрались?
0
0 / 0 / 0
Регистрация: 06.10.2009
Сообщений: 9
08.10.2009, 14:29  [ТС]
шаблона для заполнения документов excel
0
115 / 114 / 22
Регистрация: 29.08.2009
Сообщений: 174
08.10.2009, 16:12
Вот вам программа для заполнения шаблона Exccel, в коментариях все разжевано...
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
67
68
69
70
71
72
73
74
75
76
77
78
79
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, ActiveX;
 
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
 
var  
    ExcelApp, Workbook, Range, Cell1, Cell2, ArrayData  : Variant;   
    TemplateFile : String;   
    BeginCol, BeginRow, i, j : integer;
    RowCount, ColCount : integer;
begin  
  // координаты левого верхнего угла области в которую выводятся данные
  BeginCol := 2;
  BeginRow := 5;
 
  // Размеры выводимого массива данных
  RowCount := 1;
  ColCount := 4;
 
  // Создание Эксель
  ExcelApp := CreateOleObject('Excel.Application');
 
  // Отключаем реакцию Эксель на события чтобы ускорить вывод
  ExcelApp.Application.EnableEvents := false;
 
  // Открываем шаблон
  Workbook := ExcelApp.WorkBooks.Add('C:\MyTemplate.xls');
  // Если шаблона нет и надо создать новый документ то
  //  Workbook := ExcelApp.WorkBooks.Add;
    
  // создаем вариантный массив котрый заполним данными
  ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
  //можно выводить данные последовательно в каждую ячейку
  //но это замедлит работу
 
  // заполняем массив
  for I := 1 to RowCount do
    for J := 1 to ColCount do  
      ArrayData[I, J] := 'значение';
    
  // левая верхняя ячейка области в которую будем выводить данные
  Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];
  // правая нижняя
  Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow  + RowCount - 1, BeginCol +   
ColCount - 1];   
    
  // область в которую будем выводить данные
  Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];   
 
  //сам вывод данных
  Range.Value := ArrayData;
 
  // делаем Эксель видимым
  ExcelApp.Visible := true;
end;
 
end.
2
 Аватар для Mawrat
13114 / 5895 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
08.10.2009, 17:08
Лучший ответ Сообщение было отмечено как решение

Решение

Я тоже наваял. Дополню предыдущий ответ. Сделал как бы обучалку по базовым действиям в MS Excel.
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
unit Unit1;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls
 
  ,ComObj;
 
type
  TForm1 = class(TForm)
    btnConnect: TButton;
    btnBookCreate: TButton;
    Button1: TButton;
    BtnSendToExcel: TButton;
    BtnGetFromExcel: TButton;
    edSetCell1: TEdit;
    edSetCell2: TEdit;
    edSetCell3: TEdit;
    edSetCell4: TEdit;
    edGetCell1: TEdit;
    edGetCell2: TEdit;
    edGetCell3: TEdit;
    edGetCell4: TEdit;
    btnExcelClose: TButton;
    btnDisconnect: TButton;
    procedure DisconnectFromExcel;
    procedure btnConnectClick(Sender: TObject);
    procedure btnBookCreateClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure BtnSendToExcelClick(Sender: TObject);
    procedure btnDisconnectClick(Sender: TObject);
    procedure btnExcelCloseClick(Sender: TObject);
    procedure BtnGetFromExcelClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
  //Ссылка на OLE-сервер - в данном случае это MS Excel.
  //Эта ссылка представляет собой ссылку на интерфейс IDispatch, который в свою
  //очередь подключен к объекту Excel.Application. Excel.Application это "главный"
  //объект в объектной структуре MS Excel. Через этот объект можно получить доступ
  //ко всем другим объектам MS Excel.
  //В дальнейшем подобные ссылки будем называть просто ссылками.
  exApp              : Variant;
  //Ссылка на коллекцию рабочих книг.
  exWorkBooks        : Variant;
  //Ссылка на конкретную рабочую книгу.
  exWorkBook         : Variant;
  //Ссылка на коллекцию рабочих листов в рабочей книге.
  //В рабочей книге есть 2, вернее, 3 коллекции листов:
  //- коллекция рабочих листов - её представляет объект WorkSheets.
  //- колллекция листов диаграмм - представлена объектом Charts.
  //- общая коллекция листов - представлена объектом Sheets - включает в себя WorkSheets и Charts.
  //К любому листу рабочей книги можно получить доступ через общую коллекцию - Sheets.
  //Но так как в нашем случае работа с диаграммами не требуется
  //то удобней пользоваться коллекцией WorkSheets.
  exWorkSheets       : Variant;
  //Ссылка на конкретный рабочий лист.
  exWorkSheet        : Variant;
 
implementation
 
{$R *.dfm}
 
//Обнуление ссылок на объекты MS Excel. (Отключение от MS Excel).
//Ресурсы, выделяемые для работы с OLE-серверами обслуживаются механизмом
//подсчета ссылок. Поэтому удалив ссылки на объекты, мы освобождаем память, выделенную
//для ресурсов OLE-управления.
procedure TForm1.DisconnectFromExcel;
begin
  TVarData(exWorkSheet).VDispatch := nil;
  TVarData(exWorkSheets).VDispatch := nil;
  TVarData(exWorkBook).VDispatch := nil;
  TVarData(exWorkBooks).VDispatch := nil;
  TVarData(exApp).VDispatch := nil;
end;
 
//В начале работы обнуляем ссылки на объекты MS Excel.
procedure TForm1.FormCreate(Sender: TObject);
begin
  DisconnectFromExcel;
end;
 
//Подключение к MS Excel.
procedure TForm1.btnConnectClick(Sender: TObject);
begin
  //Кодключение к MS Excel.
  //При этом приложение MS Excel запустится и в переменную
  //exApp будет помещена ссылка на интерфейс IDispatch. (см. описание выше).
  exApp := CreateOleObject('Excel.Application');
  //Делаем видимым главное окно MS Excel.
  exApp.Visible := True;
  //Получаем ссылку на коллекцию рабочих книг.
  exWorkBooks := exApp.WorkBooks;
end;
 
//Создание новой рабочей книги.
procedure TForm1.btnBookCreateClick(Sender: TObject);
begin
  if TVarData(exWorkBooks).VDispatch = nil then begin
    ShowMessage('Нет ссылки на коллекцию рабочих книг. Подключитесь к MS Excel.');
    Exit;
  end;
  //Создаём новую рабочую книгу и получаем на неё ссылку.
  exWorkBook := exWorkBooks.Add;
  //Получаем ссылку на коллекцию рабочих листов этой книги.
  exWorkSheets := exWorkBook.WorkSheets;
end;
 
//Создание нового рабочего листа.
procedure TForm1.Button1Click(Sender: TObject);
begin
  if TVarData(exWorkSheets).VDispatch = nil then begin
    ShowMessage('Нет ссылки на коллекцию рабочих листов. Создайте рабочую книгу MS Excel.');
    Exit;
  end;
  //Создаём новый рабочий лист и получаем на него ссылку.
  exWorkSheet := exWorkSheets.Add;
end;
 
//Запись данных в ячейки на рабочем листе MS Excel.
procedure TForm1.BtnSendToExcelClick(Sender: TObject);
begin
  if TVarData(exWorkSheet).VDispatch = nil then begin
    ShowMessage('Нет ссылки на рабочий лист. Создайте рабочий лист MS Excel.');
    Exit;
  end;
  //Ячейки в MS Excel адресуются парой индексов: строки и столбца. Индексы начинаются с 1.
  exWorkSheet.Cells.Item[1, 1].Value := edSetCell1.Text;
  exWorkSheet.Cells.Item[1, 2].Value := edSetCell2.Text;
  exWorkSheet.Cells.Item[1, 3].Value := edSetCell3.Text;
  exWorkSheet.Cells.Item[1, 4].Value := edSetCell4.Text;
end;
 
//Чтение данных из ячеек на рабочем листе MS Excel.
procedure TForm1.BtnGetFromExcelClick(Sender: TObject);
begin
  if TVarData(exWorkSheet).VDispatch = nil then begin
    ShowMessage('Нет ссылки на рабочий лист. Создайте рабочий лист MS Excel.');
    Exit;
  end;
  //Ячейки в MS Excel адресуются парой индексов: строки и столбца. Индексы начинаются с 1.
  edGetCell1.Text := exWorkSheet.Cells.Item[1, 1].Value;
  edGetCell2.Text := exWorkSheet.Cells.Item[1, 2].Value;
  edGetCell3.Text := exWorkSheet.Cells.Item[1, 3].Value;
  edGetCell4.Text := exWorkSheet.Cells.Item[1, 4].Value;
end;
 
//Закрытие MS Excel.
procedure TForm1.btnExcelCloseClick(Sender: TObject);
begin
  if TVarData(exApp).VDispatch = nil then begin
    ShowMessage('В настоящее время связь с MS Excel отсутствует. Отключение не требуется');
    Exit;
  end;
  //Попытка закрыть MS Excel. При этом, если в книгах остались несохраненные
  //изменения, то пользователю будет показано окно с предложением сохранить изменения.
  //Пользователь может сохранить или не сохранить данные.
  //Либо вообще может отказаться от закрытия MS Excel выбрав: "Отмена".
  exApp.Quit;
  //Независимо от того: закрыл пользователь MS Excel или нет - отключаемся от MS Excel.
  DisconnectFromExcel;
end;
 
//Обнуление ссылок на объекты MS Excel. (Отключение от MS Excel).
//(см. описание к процедуре DisconnectFromExcel).
procedure TForm1.btnDisconnectClick(Sender: TObject);
begin
  DisconnectFromExcel;
end;
 
end.
Вложения
Тип файла: rar WorkWithExcel.rar (181.1 Кб, 97 просмотров)
3
0 / 0 / 0
Регистрация: 06.10.2009
Сообщений: 9
08.10.2009, 19:17  [ТС]
благодарю вас мужики!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.10.2009, 19:17
Помогаю со студенческими работами здесь

Использование макросов для заполнения шаблона из исходной таблицы
Доброго всем дня! Нужна помощь в написании макросов. Есть два файла: "Positionsbuch_2015_Шаблон.xlsm" и "ТТН_Шаблон.xls"....

Проверить корректность заполнения шаблона функции
Здравствуйте, существует некий заданный набор функций распределения вероятностей, шаблоны, как они должны выглядеть. К примеру: DISC(CumP1,...

Разработка модуля заполнения шаблона документа в Microsoft Word
С# Разработка модуля заполнения шаблона документа в Microsoft Word. Не могу понять как это нужно сделать.Через кнопку

Разработка модуля заполнения шаблона документа в Microsoft Word
С# Windows Form. на тему"Разработка модуля заполнения шаблона документа в Microsoft Word" не могу понять что и как. По интернету...

Написать программу заполнения двумерного массива A по схеме, результаты заполнения выдать на экран и в файл
помогите, пожалуйста, написать программу заполнения двумерного массива A по схеме. Результаты заполнения выдать на экран и в файл. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru