Главная страница
    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.45 MB
Время: 0.048 c
2-1392826517
dehkanin
2014-02-19 20:15
2015.09.10
Как записать в таблицу БД текст объёмом свыше 2-х мегабайт?


3-1304500823
Atum
2011-05-04 13:20
2015.09.10
Сделать запись в поле CLOB


2-1397589557
Надежда
2014-04-15 23:19
2015.09.10
Delphi. Загрузка фото в поле BLOB (IBQuery)


2-1397418044
MSAccess
2014-04-13 23:40
2015.09.10
Задать пароль БД Access


2-1396405670
Drowsy
2014-04-02 06:27
2015.09.10
TDUPM





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский