Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2009, 12:50   #1
anchorte
Новичок
Джуниор
 
Регистрация: 29.09.2009
Сообщений: 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;
но так вставляетьться только текст, а форматирование остаеться привязаным к заданым ячейкам.

подскажите как можно реализовать то что я хочу или где можно почитать литературу
anchorte вне форума Ответить с цитированием
Старый 17.01.2010, 23:15   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Один из вариантов решения проблемы.
Код:
var
  XLApp, WSh, Rng : Variant;
  ...
  WSh := XLApp.WorkBooks[1].WorkSheets[Sheet];
  WSh.Select; //выбранный лист
  ...

  //вставка строки (здесь одной) в позицию <Row> и копирование форматов ячеек
  Rng := WSh.Rows[Row];
  Rng.Select;

  //вставка строки; новая строка внизу (Row+1)
  XLApp.Selection.Insert(Shift := xlDown); 

  //копирование формата с ячеек существующей строки на ячейки добавленной
  Rng := WSh.Rows[Row+1];
  Rng.Select;
  XLApp.Selection.Copy;
  Rng := WSh.Rows[Row];
  Rng.Select;
  XLApp.Selection.PasteSpecial(Paste:=xlPasteFormats, Operation:=xlNone,
                               SkipBlanks:=False, Transpose:=False);
  XLApp.CutCopyMode := False;

Последний раз редактировалось mihali4; 17.01.2010 в 23:36.
Скандербег вне форума Ответить с цитированием
Старый 06.04.2010, 15:31   #3
Dus-F
 
Регистрация: 24.03.2010
Сообщений: 4
По умолчанию

Спс, Скандербег.
Dus-F вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить в таблицу Excel данные из текстового файла Диагностик Microsoft Office Excel 8 13.12.2009 13:50
Как вставить таблицу в richedit blackstersl Компоненты Delphi 0 15.03.2009 19:05
Как поменять одну из текстур объекта не меняя все остальные и без повторной загрузки объекта в GLScene DomKr@t Мультимедиа в Delphi 0 14.12.2008 01:52
Как из dbf перенести все записи в определенную позицию? Askat БД в Delphi 3 03.07.2007 12:13