Программирование >>  Разработка пользовательского интерфейса 

1 ... 113 114 115 [ 116 ] 117 118 119 ... 147


Chart запущенной копии Microsoft

Excel, то запускается невидимая копия и создается рабочая книга с именем Object и один рабочий лист с именем Sheet1 . Для объекта Chart помимо этого создается еще один рабочий лист с именем Chart1 . Как только ссылка на созданный объект перестает существовать (стирается), рабочая книга удаляется, но Excel остается загруженным в памяти компьютера. Если одна или несколько копий Microsoft Excel уже запущены, то добавляется рабочая книга с параметрами, как это было описано в предыдущем абзаце. В случае, когда уже работает несколько копий Excel, предугадать, в какой из них будет добавлена таблица, невозможно.

GetObject Если параметр FileName является допустимым (существующим) именем файла и Microsoft Excel не запущен, то запускается новая невидимая его копия с невидимой рабочей книгой. Если хотя бы одна копия Microsoft Excel уже запущена, рабочая книга открывается в ней. При этом будет получена ошибка, если указанное в функции имя файла совпадет с уже открытым файлом в загруженной копии Excel. Если параметр FileName задан в виде пустой строки ( ) и если не существует запущенной копии Microsoft Excel, то запускается невидимая ее копия и создается рабочая книга с именем Object и один рабочий лист с именем Sheet1 . Если параметр FileName задан в виде пустой строки ( ) и если хотя бы одна копия Microsoft Excel загружена в память, то в одной из них открывается рабочая книга, как это было описано выше. Если параметр FileName не указан, всегда генерируется ошибка.

Как вы можете заметить, изучив табл. 10.2, создание объектов OLE Automation или обращение к ним в Microsoft Excel зачастую может привести к совершенно различным последствиям. Почти



Любая из этих строк приведет к запуску новой копии Excel в скрытом виде.

oApp = GETOBJECT(, EXCEL.APPLICATION )

Обеспечит ссылку на текущее приложение Excel. Если же Excel на компьютере не запущен, будет сгенерировано сообщение об ошибке.

Объект Sheet

oExSheet = CREATEOBJECT( EXCEL.SHEET )

FOR nVal = 1 TO 10

oExlSheet.Cells(nVal, nVal).Value = nVal * nVal

ENDFOR

* Если хотите увидеть результат, уберите комментарий в следующий строке

* oExlSheet.Application.Visible = .T. oExlSheet.SaveAs( TEMP.XLS )

Создает новый рабочий лист в запускаемой невидимой копии Excel и заполняет его цифрами так, как это показано на рис. 10.4. Созданная таблица сохраняется в файле TEMP.XLS в папке, установленной по умолчанию для Excel.

всегда Excel создает невидимую копию приложения. Для того чтобы сделать ее видимой для пользователя, надо присвоить свойству Visible объекта Application значение истина :

...Application.Visible = .T.

Если создается невидимая копия рабочей книги, то сделать ее видимой можно, присвоив значение истина свойству Visible окна:

...Window(n).Visible = .T.

В некоторых случаях Excel при запуске посредством OLE Automation не открывает новый файл. Тогда это придется сделать с помощью метода Add коллекции Workbooks:

...Workbooks.Add

Для завершения обсуждения проблем, связанных с объектами верхнего уровня Microsoft Excel, приведем несколько примеров.

Объект Application

oApp = CREATEOBJECT( EXCEL.APPLICATION ) oApp = GETOBJECT( , EXCEL.APPLICATION )



3 Tampjde

1 1

1 1 1 1

i 100

Рис. 10.4.

oExlSheet = GETOBJECT( RAS 1.XLS , EXCEL.SHEET ) oExlSheet.Range( G2 ).Value = 16 oExlSheet.Range( G3 ).Value = 10 oExlSheet.Parent.Save && Сохраняем рабочую книгу

? oExlSheet.Range( G4 ).Value

Создает ссылку на первый рабочий лист в файле RAS 1.XLS. Файл в данном случае должен располагаться в папке, указанной по умолчанию для приложения, использующего OLE Automation, иначе необходимо указать путь к нему. В этот файл, содержащий результаты расчетов, мы заносим новые данные в ячейки G2 и G3, сохраняем данные, а затем выводим результат вычислений из ячейки G4, где записана формула, вычитающая G3 из G2.

Объект Chart

oExlChart = CREATEOBJECT( EXCEL.CHART )

* Стираем данные по умолчанию на рабочем листе со значениями oExlChart.Parent.Sheets(2).Range( A1:D10 ).Clear

FOR nVal = 1 TO 10

* Заполняем таблицу новыми значениями oExlChart.Parent.Sheets(2).Cells(nVal,1).Value = nVal oExlChart.Parent.Sheets(2).Cells(nVal,2).Value = nVal * nVal

NEXT

* Строим график по новым значениям по колонкам oExlChart.ChartWizard(oExlChart.Parent.Sheets(2).Range( A1:B10 ), 2)

* Смотрим, что получилось oExlChart.Application.Visible = .T.

WAIT

Создается новый рабочий лист с диаграммой. Сначала мы аполняем необходимыми данными второй рабочий лист, на котором размещаются данные. Затем с помощью метода ChartWizard обновляем диаграмму на первом рабочем листе. В методе ChartWizard из большого числа параметров мы устанавливаем только область данных и условие построения его по колонкам. Остальные параметры принимают значения по умолчанию. После этого выводим Excel на экран и используем команду WAIT для того, чтобы рабочая книга не была выгружена после завершения работы программы.

oExlChart = GETOBJECT( RAS 1.XLS , EXCEL.CHART ) oExlChart.ChartTitle.Text = Результаты продаж

Создает ссылку на первый рабочий лист с диаграммой в файле RAS 1.XLS. В файле должен быть предварительно создан объект Chart с помощью команды Chart в меню Insert.

Управление объектами Word for Windows



1 ... 113 114 115 [ 116 ] 117 118 119 ... 147

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика