Добрый вечер. Вопрос такой. Работаю с шаблоном 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.
Подскажите в чем может затык быть?
Заранее благодарю за советы.