![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
|
Народ подскажите как вставить строку в таблицу excel при этом все остальные сдвинуть на позицию в низ, сохранив их формат.
пробовал сделать так: Код:
Var
x:variant;
Tel,datD,datM,datY:String;
myDate : TDateTime;
i,z:integer;
begin
z:=StrToInt(gar5.Text);
x:=CreateOleObject('Excel.Application');
x.WorkBooks.ADD(template:='D:\info-c\Бланки\Garant.xls');
x.worksheets[1].Select;
myDate:=Now;
DateTimeToString(datD, 'dd', myDate);
DateTimeToString(datM, 'mmmm', myDate);
DateTimeToString(datY, 'yyyy', myDate);
x.cells[StrToInt(gar7.Text),StrToInt(gar8.Text)]:='ГАРАНТИЙНЫЙ ТАЛОН от «' +datD+ '» ' +datM+' '+datY+' г.';
with Table3 do
begin
Table3.First;
for i := 0 to 9 do
if not EOF then
begin
x.cells[StrToInt(gar1.Text)+i+1,StrToInt(gar2.Text)].insert;
x.cells[StrToInt(gar1.Text)+i,StrToInt(gar2.Text)]:=FieldByName ('Наименование').AsString;
x.Range['A'+IntToStr(z+i)+':C'+IntToStr(z+i)].select;
x.selection.borders.linestyle:=1;
Table3.Next;
end;
end;
x.visible:=true;подскажите как можно реализовать то что я хочу или где можно почитать литературу ![]() |
|
#2
|
||||
|
||||
|
Попоробуйте посмотреть как это делается в самом экселе с помощью макроса, и повторите в Delphi
|
|
#3
|
||||
|
||||
|
Другой вопрос как перевести на Delphi
Код:
Selection.Insert Shift:=xlDown |
|
#4
|
||||
|
||||
|
а в чем вопрос то?
|
|
#5
|
||||
|
||||
|
Цитата:
Всем спасибо за помощь. ![]() |
|
#6
|
||||
|
||||
|
Код:
const
xlDown = -4121;
var
x, cel:variant;
i:integer;
begin
try
x:= CreateOleObject('Excel.Application');
x.WorkBooks.open(ExtractFilePath(ParamStr(0))+'1.xls');
x.Visible:=true;
for i:=1 to 20 do
x.Workbooks[1].WorkSheets[3].Cells[i,2]:=i;
x.Workbooks[1].WorkSheets[3].Rows['8:8'].Select;
x.Selection.Insert(Shift:=xlDown);
x.Workbooks[1].WorkSheets[3].range['B8'].numberformat:='@'; //задаст текстовый формат ячейки
except
showmessage('Error, error, Error');
end;
end; |
|
#7
|
||||
|
||||
|
Вот то что я выстрадал, если у кого либо есть идеи по доработке просьба отписаться
Код:
Var
x:variant;
Tel,datD,datM,datY:String;
myDate : TDateTime;
i,z:integer;
const xlShiftDown = $FFFFEFE7;
begin
z:=StrToInt(gar5.Text);
x:=CreateOleObject('Excel.Application');
x.WorkBooks.ADD(template:='D:\info-c\Бланки\Garant.xls');
x.worksheets[1].Select;
myDate:=Now;
DateTimeToString(datD, 'dd', myDate);
DateTimeToString(datM, 'mmmm', myDate);
DateTimeToString(datY, 'yyyy', myDate);
x.cells[StrToInt(gar7.Text),StrToInt(gar8.Text)]:='ГАРАНТИЙНЫЙ ТАЛОН от «' +datD+ '» ' +datM+' '+datY+' г.';
with Table3 do
begin
Table3.First;
for i := 0 to 9 do
if not EOF then
begin
z:=StrToInt(gar1.Text)+i+1;
x.cells[StrToInt(gar1.Text)+i,StrToInt(gar2.Text)]:=FieldByName('Наименование').AsString;
x.Range['A'+IntToStr(StrToInt(gar1.Text)+i)+':C'+IntToStr(StrToInt(gar1.Text)+i)].select;
x.selection.borders.linestyle:=1;
x.Range[IntToStr(z)+':'+IntToStr(z), EmptyParam].EntireRow.Insert(xlShiftDown, EmptyParam);
Table3.Next;
end;
end;
x.visible:=true; |