Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.052 c
15-1414870399
Pavia
2014-11-01 22:33
2015.09.10
Переопределение класса.


15-1420313485
alexdn
2015-01-03 22:31
2015.09.10
Конвертер php в delphi


15-1415338310
SKIPtr
2014-11-07 08:31
2015.09.10
Серебряная Калоша2014


15-1416432603
Юрий
2014-11-20 00:30
2015.09.10
С днем рождения ! 20 ноября 2014 четверг


15-1412886602
Юрий
2014-10-10 00:30
2015.09.10
С днем рождения ! 10 октября 2014 пятница





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский