Основы COM-технологий. Артемов М.А. и др. - 35 стр.

UptoLike

Составители: 

Ɉɛɪɚɬɢɬɟ ɜɧɢɦɚɧɢɟ ɧɚ ɬɨ, ɱɬɨ ɜ Delphi ɩɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɩɨɡɞɧɟɝɨ
ɫɜɹɡɵɜɚɧɢɹ ɫɢɧɬɚɤɫɢɫ, ɢɫɩɨɥɶɡɭɟɦɵɣ ɞɥɹ ɨɛɪɚɳɟɧɢɹ ɤ ɱɥɟɧɚɦ ɤɨɥɥɟɤɰɢɣ
ɨɛɴɟɤɬɨɜ Excel, ɨɬɥɢɱɟɧ ɨɬ ɫɢɧɬɚɤɫɢɫɚ, ɢɫɩɨɥɶɡɭɟɦɨɝɨ ɞɥɹ ɨɛɪɚɳɟɧɢɹ ɤ
ɨɛɴɟɤɬɚɦ Word – ɜ ɫɥɭɱɚɟ Word ɦɵ ɢɫɩɨɥɶɡɨɜɚɥɢ ɦɟɬɨɞ Item, ɚ ɜ ɫɥɭɱɚɟ
Excel ɦɵ ɨɛɪɚɳɚɟɦɫɹ ɤ ɱɥɟɧɚɦ ɤɨɥɥɟɤɰɢɢ ɤɚɤ ɤ ɷɥɟɦɟɧɬɚɦ ɦɚɫɫɢɜɚ. ȿɫɥɢ
ɠɟ ɜɵ ɢɫɩɨɥɶɡɭɟɬɟ Visual Basic, ɫɢɧɬɚɤɫɢɫ, ɩɪɢɦɟɧɹɟɦɵɣ ɞɥɹ ɨɛɪɚɳɟɧɢɹ
ɤ ɱɥɟɧɚɦ ɤɨɥɥɟɤɰɢɣ, ɛɭɞɟɬ ɨɞɢɧɚɤɨɜ ɞɥɹ ɜɫɟɯ ɤɨɥɥɟɤɰɢɣ Microsoft Office.
ɋɞɟɥɚɬɶ ɪɚɛɨɱɭɸ ɤɧɢɝɭ ɚɤɬɢɜɧɨɣ ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Activate:
App.WorkBooks[2].Activate;
Ɋɚɫɫɦɨɬɪɢɦ ɞɚɥɟɟ ɫɨɯɪɚɧɟɧɢɟ ɪɚɛɨɱɢɯ ɤɧɢɝ ɜ ɮɚɣɥɚɯ.
6.5.3. ɋɨɯɪɚɧɟɧɢɟ, ɩɟɱɚɬɶ ɢ ɡɚɤɪɵɬɢɟ ɪɚɛɨɱɢɯ ɤɧɢɝ Microsoft Excel
Ɂɚɤɪɵɬɢɟ ɞɨɤɭɦɟɧɬɚ ɦɨɠɟɬ ɛɵɬɶ ɨɫɭɳɟɫɬɜɥɟɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ
Close:
App.WorkBooks[2].Close;
ɢɥɢ
App.ActiveWorkBook.Close;
Ɇɟɬɨɞ Close ɢɦɟɟɬ ɧɟɫɤɨɥɶɤɨ ɧɟɨɛɹɡɚɬɟɥɶɧɵɯ (ɜ ɫɥɭɱɚɟ ɩɨɡɞɧɟɝɨ
ɫɜɹɡɵɜɚɧɢɹ) ɩɚɪɚɦɟɬɪɨɜ, ɜɥɢɹɸɳɢɯ ɧɚ ɩɪɚɜɢɥɚ ɫɨɯɪɚɧɟɧɢɹ ɪɚɛɨɱɟɣ ɤɧɢ-
ɝɢ. ɉɟɪɜɵɣ ɢɡ ɩɚɪɚɦɟɬɪɨɜ ɩɪɢɧɢɦɚɟɬ ɡɧɚɱɟɧɢɹ True ɢɥɢ False ɢ ɜɥɢɹɟɬ ɧɚ
ɬɨ, ɫɨɯɪɚɧɹɬɶ ɥɢ ɢɡɦɟɧɟɧɢɹ, ɜɧɟɫɟɧɧɵɟ ɜ ɪɚɛɨɱɭɸ ɤɧɢɝɭ. ȼɬɨɪɨɣ ɩɚɪɚ-
ɦɟɬɪ (ɬɢɩɚ Variant) ɢɦɹ ɮɚɣɥɚ, ɜ ɤɨɬɨɪɨɦ ɧɭɠɧɨ ɫɨɯɪɚɧɢɬɶ ɪɚɛɨɱɭɸ
ɤɧɢɝɭ (ɟɫɥɢ ɜ ɧɟɟ ɛɵɥɢ ɜɧɟɫɟɧɵ ɢɡɦɟɧɟɧɢɹ). Ɍɪɟɬɢɣ ɩɚɪɚɦɟɬɪ, ɬɚɤɠɟ ɩɪɢ-
ɧɢɦɚɸɳɢɣ ɡɧɚɱɟɧɢɹ True ɢɥɢ False, ɜɥɢɹɟɬ ɧɚ ɬɨ, ɫɥɟɞɭɟɬ ɥɢ ɩɟɪɟɫɵɥɚɬɶ
ɞɨɤɭɦɟɧɬ ɫɥɟɞɭɸɳɟɦɭ ɩɨɥɶɡɨɜɚɬɟɥɸ ɩɨ ɷɥɟɤɬɪɨɧɧɨɣ ɩɨɱɬɟ, ɢ ɦɨɠɟɬ ɛɵɬɶ
ɩɪɨɢɝɧɨɪɢɪɨɜɚɧ,
ɟɫɥɢ ɷɬɚ ɮɭɧɤɰɢɨɧɚɥɶɧɨɫɬɶ ɧɟ ɢɫɩɨɥɶɡɭɟɬɫɹ:
App.ActiveWorkBook.Close(True,’C:\MyWorkBook.xls’);
ɉɪɨɫɬɨ ɫɨɯɪɚɧɢɬɶ ɪɚɛɨɱɭɸ ɤɧɢɝɭ, ɧɟ ɡɚɤɪɵɜɚɹ ɟɟ, ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ
ɦɟɬɨɞɨɜ Save ɢɥɢ SaveAs:
App.ActiveWorkBook.Save;
ɢɥɢ
App.ActiveWorkBook.SaveAs(‘C:\MyWorkBook.xls’);
Ɇɟɬɨɞ SaveAs ɢɦɟɟɬ ɛɨɥɟɟ ɞɟɫɹɬɤɚ ɩɚɪɚɦɟɬɪɨɜ, ɜɥɢɹɸɳɢɯ ɧɚ ɬɨ, ɤɚɤ
ɢɦɟɧɧɨ ɫɨɯɪɚɧɹɟɬɫɹ ɞɨɤɭɦɟɧɬ (ɩɨɞ ɤɚɤɢɦ ɢɦɟɧɟɦ, ɫ ɩɚɪɨɥɟɦ ɢɥɢ ɛɟɡ ɧɟɝɨ,
ɤɚɤɨɜɚ ɤɨɞɨɜɚɹ ɫɬɪɚɧɢɰɚ ɞɥɹ ɫɨɞɟɪɠɚɳɟɝɨɫɹ ɜ ɧɟɣ ɬɟɤɫɬɚ ɢ ɞɪ.).
Ɂɚɤɪɵɬɶ ɫɚɦ Excel ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ Quit ɨɛɴɟɤɬɚ
Excel.Application. ȼ ɫɥɭɱɚɟ Excel ɷɬɨɬ ɦɟɬɨɞ ɩɚɪɚɦɟɬɪɨɜ ɧɟ ɢɦɟɟɬ.
69
ȼɵɜɨɞ ɞɨɤɭɦɟɧɬɚ Excel ɧɚ ɭɫɬɪɨɣɫɬɜɨ ɩɟɱɚɬɢ ɦɨɠɧɨ ɨɫɭɳɟɫɬɜɢɬɶ ɫ
ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ PrintOut ɨɛɴɟɤɬɚ WorkBook, ɧɚɩɪɢɦɟɪ:
App.ActiveWorkBook.PrintOut;
ȿɫɥɢ ɧɭɠɧɨ ɢɡɦɟɧɢɬɶ ɩɚɪɚɦɟɬɪɵ ɩɟɱɚɬɢ, ɫɥɟɞɭɟɬ ɭɤɚɡɚɬɶ ɡɧɚɱɟɧɢɹ
ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɯ ɩɚɪɚɦɟɬɪɨɜ ɦɟɬɨɞɚ PrintOut (ɜ ɫɥɭɱɚɟ Excel ɢɯ ɜɨɫɟɦɶ).
6.5.4. Ɉɛɪɚɳɟɧɢɟ ɤ ɥɢɫɬɚɦ ɢ ɹɱɟɣɤɚɦ
Ɉɛɪɚɳɟɧɢɟ ɤ ɥɢɫɬɚɦ ɪɚɛɨɱɟɣ ɤɧɢɝɢ ɩɪɨɢɡɜɨɞɢɬɫɹ ɫ ɩɨɦɨɳɶɸ ɤɨɥ-
ɥɟɤɰɢɢ WorkSheets ɨɛɴɟɤɬɚ WorkBook. Ʉɚɠɞɵɣ ɱɥɟɧ ɷɬɨɣ ɤɨɥɥɟɤɰɢɢ
ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɨɛɴɟɤɬ WorkSheet. Ʉ ɱɥɟɧɭ ɷɬɨɣ ɤɨɥɥɟɤɰɢɢ ɦɨɠɧɨ
ɨɛɪɚɬɢɬɶɫɹ ɩɨ ɟɝɨ ɩɨɪɹɞɤɨɜɨɦɭ ɧɨɦɟɪɭ, ɧɚɩɪɢɦɟɪ:
App.WorkBooks[1].WorkSheets[1].Name := ‘ɋɬɪɚɧɢɰɚ 1’;
ɉɪɢɜɟɞɟɧɧɵɣ ɜɵɲɟ ɩɪɢɦɟɪ ɢɥɥɸɫɬɪɢɪɭɟɬ, ɤɚɤ ɦɨɠɧɨ ɢɡɦɟɧɢɬɶ ɢɦɹ
ɥɢɫɬɚ ɪɚɛɨɱɟɣ ɤɧɢɝɢ.
Ʉ ɥɢɫɬɭ ɪɚɛɨɱɟɣ ɤɧɢɝɢ ɦɨɠɧɨ ɨɛɪɚɬɢɬɶɫɹ ɢ ɩɨ ɢɦɟɧɢ, ɧɚɩɪɢɦɟɪ:
App.WorkBooks[1].WorkSheets[‘Sheet1’].Name := ‘ɋɬɪɚɧɢɰɚ 1’;
Ɉɛɪɚɳɟɧɢɟ ɤ ɨɬɞɟɥɶɧɵɦ ɹɱɟɣɤɚɦ ɥɢɫɬɚ ɩɪɨɢɡɜɨɞɢɬɫɹ ɫ ɩɨɦɨɳɶɸ
ɤɨɥɥɟɤɰɢɢ Cells ɨɛɴɟɤɬɚ WorkSheet. ɇɚɩɪɢɦɟɪ, ɞɨɛɚɜɢɬɶ ɞɚɧɧɵɟ ɜ ɹɱɟɣɤɭ
B1 ɦɨɠɧɨ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ:
App.WorkBooks[1].WorkSheets[‘Sheet1’].Cells[1,2].Value:=’25’;
Ɂɞɟɫɶ ɩɟɪɜɚɹ ɢɡ ɤɨɨɪɞɢɧɚɬ ɹɱɟɣɤɢ ɭɤɚɡɵɜɚɟɬ ɧɚ ɧɨɦɟɪ ɫɬɪɨɤɢ, ɜɬɨɪɚɹ
ɧɚ ɧɨɦɟɪ ɫɬɨɥɛɰɚ.
Ⱦɨɛɚɜɥɟɧɢɟ ɮɨɪɦɭɥ ɜ ɹɱɟɣɤɢ ɩɪɨɢɡɜɨɞɢɬɫɹ ɚɧɚɥɨɝɢɱɧɵɦ ɫɩɨɫɨɛɨɦ:
App.WorkBooks[1].WorkSheets[‘Sheet1’].Cells[3,2].Value := ‘
=SUM(B1:B2)’;
Ɉɱɢɫɬɢɬɶ ɹɱɟɣɤɭ ɦɨɠɧɨ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɞɚ ClearContents.
Ɏɨɪɦɚɬɢɪɨɜɚɧɢɟ ɬɟɤɫɬɚ ɜ ɹɱɟɣɤɚɯ ɩɪɨɢɡɜɨɞɢɬɫɹ ɫ ɩɨɦɨɳɶɸ ɫɜɨɣɫɬɜ
Font ɢ Interior ɨɛɴɟɤɬɚ Cell ɢ ɢɯ ɩɨɞɫɜɨɣɫɬɜ. ɇɚɩɪɢɦɟɪ, ɫɥɟɞɭɸɳɢɣ ɮɪɚɝ-
ɦɟɧɬ ɤɨɞɚ ɜɵɜɨɞɢɬ ɬɟɤɫɬ ɜ ɹɱɟɣɤɟ ɤɪɚɫɧɵɦ ɠɢɪɧɵɦ ɲɪɢɮɬɨɦ Courier ɤɟɝ-
ɥɹ 16 ɧɚ ɠɟɥɬɨɦ ɮɨɧɟ:
App.WorkBooks[1].WorkSheets[1].Cells[3,2].Interior.Color := clYellow;
App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font.Color := clRed;
App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font.Name := ‘Courier’;
App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font.Size := 16;
App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font.Bold := True;
ȼɦɟɫɬɨ ɫɜɨɣɫɬɜɚ Color ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɫɜɨɣɫɬɜɨ
ColorIndex, ɩɪɢ-
ɧɢɦɚɸɳɟɟ ɡɧɚɱɟɧɢɹ ɨɬ 1 ɞɨ 56; ɬɚɛɥɢɰɭ ɫɨɨɬɜɟɬɫɬɜɢɣ ɡɧɚɱɟɧɢɣ ɷɬɨɝɨ
70
    �������� �������� �� ��, ��� � Delphi ��� ������������� ��������          ����� ��������� Excel �� ���������� ������ ����� ����������� �
���������� ���������, ������������ ��� ��������� � ������ ���������       ������� ������ PrintOut ������� WorkBook, ��������:
�������� Excel, ������� �� ����������, ������������� ��� ��������� �          App.ActiveWorkBook.PrintOut;
�������� Word – � ������ Word �� ������������ ����� Item, � � ������
Excel �� ���������� � ������ ��������� ��� � ��������� �������. ����          ���� ����� �������� ��������� ������, ������� ������� ��������
�� �� ����������� Visual Basic, ���������, ����������� ��� ���������      ��������������� ���������� ������ PrintOut (� ������ Excel �� ������).
� ������ ���������, ����� �������� ��� ���� ��������� Microsoft Office.
    ������� ������� ����� �������� ����� � ������� ������ Activate:                        6.5.4. ��������� � ������ � �������
    App.WorkBooks[2].Activate;                                                ��������� � ������ ������� ����� ������������ � ������� ���-
                                                                          ������ WorkSheets ������� WorkBook. ������ ���� ���� ���������
    ���������� ����� ���������� ������� ���� � ������.                    ������������ ����� ������ WorkSheet. � ����� ���� ��������� �����
                                                                          ���������� �� ��� ����������� ������, ��������:
 6.5.3. ����������, ������ � �������� ������� ���� Microsoft Excel
                                                                              App.WorkBooks[1].WorkSheets[1].Name := ‘�������� 1’;
    �������� ��������� ����� ���� ������������ � ������� ������               ����������� ���� ������ ������������, ��� ����� �������� ���
Close:                                                                    ����� ������� �����.
    App.WorkBooks[2].Close;                                                   � ����� ������� ����� ����� ���������� � �� �����, ��������:
    ���                                                                       App.WorkBooks[1].WorkSheets[‘Sheet1’].Name := ‘�������� 1’;
    App.ActiveWorkBook.Close;                                                 ��������� � ��������� ������� ����� ������������ � �������
                                                                          ��������� Cells ������� WorkSheet. ��������, �������� ������ � ������
     ����� Close ����� ��������� �������������� (� ������ ��������        B1 ����� ��������� �������:
����������) ����������, �������� �� ������� ���������� ������� ���-
��. ������ �� ���������� ��������� �������� True ��� False � ������ ��        App.WorkBooks[1].WorkSheets[‘Sheet1’].Cells[1,2].Value:=’25’;
��, ��������� �� ���������, ��������� � ������� �����. ������ ����-           ����� ������ �� ��������� ������ ��������� �� ����� ������, ������ –
���� (���� Variant) — ��� �����, � ������� ����� ��������� �������        �� ����� �������.
����� (���� � ��� ���� ������� ���������). ������ ��������, ����� ���-        ���������� ������ � ������ ������������ ����������� ��������:
�������� �������� True ��� False, ������ �� ��, ������� �� ����������         App.WorkBooks[1].WorkSheets[‘Sheet1’].Cells[3,2].Value := ‘
�������� ���������� ������������ �� ����������� �����, � ����� ����       =SUM(B1:B2)’;
��������������, ���� ��� ���������������� �� ������������:
    App.ActiveWorkBook.Close(True,’C:\MyWorkBook.xls’);                       �������� ������ ����� � ������� ������ ClearContents.
                                                                              �������������� ������ � ������� ������������ � ������� �������
    ������ ��������� ������� �����, �� �������� ��, ����� � �������       Font � Interior ������� Cell � �� ����������. ��������, ��������� ����-
������� Save ��� SaveAs:                                                  ���� ���� ������� ����� � ������ ������� ������ ������� Courier ���-
    App.ActiveWorkBook.Save;                                              �� 16 �� ������ ����:
    ���                                                                       App.WorkBooks[1].WorkSheets[1].Cells[3,2].Interior.Color := clYellow;
    App.ActiveWorkBook.SaveAs(‘C:\MyWorkBook.xls’);                           App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font.Color := clRed;
    ����� SaveAs ����� ����� ������� ����������, �������� �� ��, ���          App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font.Name := ‘Courier’;
������ ����������� �������� (��� ����� ������, � ������� ��� ��� ����,        App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font.Size := 16;
������ ������� �������� ��� ������������� � ��� ������ � ��.).                App.WorkBooks[1].WorkSheets[1].Cells[3,2].Font.Bold := True;
    ������� ��� Excel ����� � ������� ������ Quit �������
Excel.Application. � ������ Excel ���� ����� ���������� �� �����.             ������ �������� Color ����� ������������ �������� ColorIndex, ���-
                                                                          �������� �������� �� 1 �� 56; ������� ������������ �������� �����
                                  69                                                                         70