Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.04.2011, 19:26
Аватар для fofka
fofka fofka вне форума
Начинающий
 
Регистрация: 12.10.2008
Сообщения: 163
Репутация: -1588
Злость Шаблоны в Excel

Добрый вечер. Вопрос такой. Работаю с шаблоном Excel. В книге с шаблоном 5 листов, в зависимости от ситуации в конечном документе может остатся как 2 листа, так и все 5. Количество листов как видно из кода, меняется состоянием CheckBox-ов
Код HTML:
Ex := CreateOleObject('Excel.Application'); Ex.Application.EnableEvents := false; Workbook := Ex.WorkBooks.Add('C:\Proga\Config\OR.xls'); Ex.Visible := false; Ex.ActiveWorkBook.WorkSheets[1].Name:=L1; Ex.ActiveWorkBook.WorkSheets[2].Name:=L2; Ex.ActiveWorkBook.WorkSheets[3].Name:=L3; Ex.ActiveWorkBook.WorkSheets[4].Name:=L4; Ex.ActiveWorkBook.WorkSheets[5].Name:=L5; If CheckBox13.State = cbUnchecked Then Ex.ActiveWorkBook.WorkSheets[3].Delete; If CheckBox14.State = cbUnchecked Then Ex.ActiveWorkBook.WorkSheets[4].Delete; If CheckBox15.State = cbUnchecked Then Ex.ActiveWorkBook.WorkSheets[5].Delete; Ex.ActiveWorkBook.WorkSheets[L1].Range['O9'].Value:=n1; Ex.ActiveWorkBook.WorkSheets[L1].Range['V3'].Value:= u1;
Не хочет работать и все! Уже весь мозг изломал. Сделал пример так сказать (в приложении), работает. А у меня в проге не хочет. В примере сделал так
Код HTML:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; ComboBox1: TComboBox; Memo1: TMemo; Button1: TButton; CheckBox1: TCheckBox; CheckBox2: TCheckBox; CheckBox3: TCheckBox; CheckBox4: TCheckBox; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation uses ComObj; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var Ex, Workbook, W, L1, L2, L3, L4, L5 :Variant; t1, t2, mem :TCaption; i,j: Integer; begin t1 := Form1.Edit1.Text; t2 := Form1.ComboBox1.Text; mem := Form1.Memo1.Text; L1 :='Листок 1'; L2 :='Листок 2'; L3 :='Листок 3'; L4 :='Листок 4'; L5 :='Листок 5'; Ex := CreateOleObject('Excel.Application'); Ex.Application.EnableEvents := false; Workbook := Ex.WorkBooks.Add('C:\Shablon\Config\Shablon.xls'); Ex.Visible := false; Ex.ActiveWorkBook.WorkSheets[1].Name:=L1; Ex.ActiveWorkBook.WorkSheets[2].Name:=L2; Ex.ActiveWorkBook.WorkSheets[3].Name:=L3; Ex.ActiveWorkBook.WorkSheets[4].Name:=L4; Ex.ActiveWorkBook.WorkSheets[5].Name:=L5; Ex.ActiveWorkBook.WorkSheets[1].Range['B4'].Value:=t1; Ex.ActiveWorkBook.WorkSheets[1].Range['C4'].Value:=t2; If CheckBox3.State = cbChecked Then Ex.ActiveWorkBook.WorkSheets[5].Delete; If CheckBox2.State = cbChecked Then Ex.ActiveWorkBook.WorkSheets[4].Delete; If CheckBox1.State = cbChecked Then Ex.ActiveWorkBook.WorkSheets[3].Delete; begin for i:=1 to length(mem) do begin j:=(i div 30)+ 5; Ex.ActiveWorkBook.WorkSheets[1].Cells[j,2].value:=Ex.ActiveWorkBook.WorkSheets[1].Cells[j,2].value+mem[i]; end; begin If CheckBox4.State = cbChecked Then Ex.ActiveWorkBook.SaveAs('C:\Shablon\Config\OUT.xls'); Ex.Application.EnableEvents := true; Ex.Visible := true; end; end; end; end.
Подскажите в чем может затык быть?
Заранее благодарю за советы.
Вложения
Тип файла: rar Shablon.rar (13.1 Кбайт, 4 просмотров)
Ответить с цитированием
  #2  
Старый 21.04.2011, 23:55
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

а как же WorkSheets.Add?
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя
Ответить с цитированием
  #3  
Старый 22.04.2011, 06:51
Аватар для fofka
fofka fofka вне форума
Начинающий
 
Регистрация: 12.10.2008
Сообщения: 163
Репутация: -1588
По умолчанию

Я же шаблон открываю, а там уже есть листы?
Код HTML:
Workbook := Ex.WorkBooks.Add('C:\Proga\Config\OR.xls');
Зачем еще добавлять?
Код HTML:
а как же WorkSheets.Add
Ответить с цитированием
  #4  
Старый 22.04.2011, 12:01
Аватар для fofka
fofka fofka вне форума
Начинающий
 
Регистрация: 12.10.2008
Сообщения: 163
Репутация: -1588
По умолчанию

Все оказалось намного проще. Шаблон кривой был. Сделал нормально шаблон и все заработало. Внимательней нужно быть.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:50.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025