Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.09.10;
Скачать: CL | DM;

Вниз

TOleContainer и Excel   Найти похожие ветки 

 
Deltas ©   (2012-03-07 13:33) [0]

Можно ли сделать так, чтобы внутри котейнера отрисовывались ячейки листа не с позиции А1, а с другой... например с B2. То есть что-то вроде свойств TopRow, LeftColumn?


 
sniknik ©   (2012-03-07 13:51) [1]

Sub Макрос1()
"
" Макрос1 Макрос
" Макрос записан 07.03.2012
"

"
   Selection.EntireRow.Hidden = True
   Selection.EntireColumn.Hidden = True
End Sub


 
Deltas ©   (2012-03-07 21:37) [2]

Спасибо.


 
Deltas ©   (2012-03-11 16:58) [3]

А каким образом можно прокрутить область листа, открытого в Microsoft Excel, т.е. чтобы верхняя левая ячейка была b2, например?


 
sniknik ©   (2012-03-11 17:01) [4]

без разницы, что угодно делается одинаково... - записываешь макрос, смотришь код.


 
Deltas ©   (2012-03-11 17:18) [5]

Sub Макрос1()
"
" Макрос1 Макрос
"

"
   ActiveWindow.SmallScroll ToRight:=1
   ActiveWindow.SmallScroll Down:=1
End Sub

Пытаюсь сделать то же самое из Delphi:
В OleContainer1 (TOleContainer) создаю объект класса "Excel.Sheet.8".

procedure TForm1.Button1Click(Sender: TObject);
var
 wb: ExcelWorkbook;
 ws: ExcelWorksheet;
 v: Variant;
begin
 OleContainer1.Run;
 if Supports(OleContainer1.OleObjectInterface, ExcelWorkbook, wb) then
   if (wb.Sheets.Count > 0) and Supports(wb.Sheets[1], ExcelWorksheet, ws) then
 begin
   v := ws;
   v.ActiveWindow.SmallScroll.ToRight := 1;
 end;
end;


При нажатии Button1 получаю ошибку "Method "ActiveWindow" not supported by automation object".


 
Deltas ©   (2012-03-11 17:29) [6]

procedure TForm1.Button1Click(Sender: TObject);
var
 wb: ExcelWorkbook;
 ws: ExcelWorksheet;
begin
 if Supports(OleContainer1.OleObjectInterface, ExcelWorkbook, wb) then
   if (wb.Sheets.Count > 0) and Supports(wb.Sheets[1], ExcelWorksheet, ws) then
     ws.Application.ActiveWindow.SmallScroll(1, 0, 0, 0);
end;


Так работает, но только если объект OLE открыт в серверном приложении (MS Office). В противном случае, ActiveWindow имеет значение nil. Хотелось бы крутить таблицу Excel туда-сюда без открытия листа в серверном приложении. Например, значения ячеек я ведь могу записать без открытия объекта в серверном приложении.



Страницы: 1 вся ветка

Текущий архив: 2015.09.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.069 c
2-1398170461
rumma
2014-04-22 16:41
2015.09.10
buttonededit, imagelist и vcl style


15-1419975002
Юрий
2014-12-31 00:30
2015.09.10
С днем рождения ! 31 декабря 2014 среда


2-1392445540
Drowsy
2014-02-15 10:25
2015.09.10
Как настроить BDE?


2-1393570213
Михаил
2014-02-28 10:50
2015.09.10
вставка текста в MS Word через OleContainer


15-1411828290
ProstoTak
2014-09-27 18:31
2015.09.10
Интересный трейс