Главная страница
    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.078 c
15-1412618295
Дмитрий Белькевич
2014-10-06 21:58
2015.09.10
Обновление 1 для Delphi XE6


15-1411754239
aka
2014-09-26 21:57
2015.09.10
посоветуйте offline словарь на Андройд


15-1417559265
Jeer
2014-12-03 01:27
2015.09.10
А вдруг?


15-1415723216
Ellisium
2014-11-11 19:26
2015.09.10
MS SQL синхронизация / Timestamp


15-1419197402
Юрий
2014-12-22 00:30
2015.09.10
С днем рождения ! 22 декабря 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
Английский Французский Немецкий Итальянский Португальский Русский Испанский