PHP 4 на практике

         

Запись информации в документ Microsoft Word


Допустим, вам потребовалось отформатировать информацию, загруженную из базы данных, в документе Word для построения отчета. Весь процесс автоматизируется всего в нескольких строках кода РНР. Для демонстрационных целей я воспользуюсь таблицей addressbook из проекта адресной книги, приведенного в конце главы 12. Алгоритм работы сценария выглядит следующим образом:

  1. Подключиться к серверу MySQL и выбрать нужную базу данных.
  2. Выбрать все данные из таблицы с сортировкой по фамилиям.


  3. Открыть приложение Microsoft Word и создать новый документ.
  4. Отформатировать и вывести все записи в документе.
  5. Запросить у пользователя имя для сохранения документа.
  6. Закрыть Microsoft Word.

Программный код приведен в листинге 15.7.

Листинг 15.7. Запись информации в документ Microsoft Word <?

<?

// Создать соединение с сервером MySQL

$host = "localhost";

$user = "root";

$pswd = "";

$db = "book";

$address_table = "addressbook";

mysql_connect($host. $user, $pswd)

or die("Couldn't connect to MySQL server!");

mysql_select_db($db) or die("Couldn't select database!");

// Выбрать из базы данных все записи

$query = "SELECT * FROM $address_table ORDER BY lastjiame";

Sresult = mysql_query($query):

// Создать новый объект COM для приложения MS Word

$word=new COM("word.application") or die("Couldn't start Word!");

// Активизировать окно MS Word $word->visible = 1;

// Открыть пустой документ. $word->Documents->Add( );

// Перебрать записи из таблицы адресов

while($row = mysql_fetch_array($result));

$last_name = $row["last_name"];

$first_name = $row["first_name"];

$tel = $row["tel"];

$email = $row["email"];

// Вывести данные таблицы в открытый документ Word.

$word->Selection->Typetext("$last_name. $first_name\n"); $word->Selection->Typetext("tel. $tel\n"): $word->Selection->Typetext("email. $email:\n");

endwhile;

// Запросить у пользователя имя документа.

$word->Documents[l]->Save;

// Выйти из MS Word

$word->Quit();

?>

При всей простоте рассмотренный пример наглядно показывает, как писать приложения РНР для пересылки содержимого базы данных в приложения Windows. Можно написать и более сложное приложение, обеспечивающее синхронизацию данных, полученных из Web, из Microsoft Outlook. Все, что для этого нужно — получить ссылку на объекты, свойства и методы Outlook, после чего можно переходить к экспериментам (обзор объектной модели всех приложений семейства Office приведен по адресу http://www.microsoft.com/officedev/articles/Opg/toc/PGTOC.htm).

Содержание раздела