|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Помогите победить EXCEL
Народ подскажите как вставить строку в таблицу 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; |