powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Создание COM объекта для
8 сообщений из 8, страница 1 из 1
Создание COM объекта для
    #37814006
Roman20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет! Нужен совет умных людей.
Есть веб приложение крутится на сервере linux. Но есть необходимость использовать экспорт данных в Ексель средствами COM объекта. Для этого есть windows server 2008. Пытаюсь через него создать COM объект. Делаю простейший пример вот код скрипта на линуксе.
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
<?php

  session_start();
  ini_set('max_execution_time', 600);
  
//  include('connect.php');
  
  $reportserver = 'http://test.ilada.lan:8088';
  
  global $reportserver;
  
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_URL, $reportserver.'/wgis_exrep/export_win.php');
  curl_exec($ch);
  curl_close($ch);  
  
  
  
  
?>



вот скрипт на windows 2008

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
<?php


	$xls = new COM("Excel.Application"); // Создаем новый COM-объект
	$xls->Application->Visible = 1;      // Заставляем его отобразиться
	$xls->Workbooks->Add();              // Добавляем новый документ
	 
	$rangeValue = $xls->Range("A1");
	$rangeValue->Value = "В выделенном блоке текст будет жирный, подчеркнутый, наклонный";
	$rangeValue = $xls->Range("A2");
	$rangeValue->Value = "Шрифт будет иметь высоту 12";
	$rangeValue = $xls->Range("A3");
	$rangeValue->Value = "Имя шрифта - Times New Roman";
	 
	$range=$xls->Range("A1:J10");               // Определяем область ячеек
	$range->Select();                           // Выделяем ее
	$fontRange=$xls->Selection();               // Присваиваем переменной выделенную область
	 
	// Далее задаем параметры форматирования текста в выделенной области
	$fontRange->Font->Bold = true;              // Жирный
	$fontRange->Font->Italic = true;            // Курсив
	$fontRange->Font->Underline = true;         // Подчеркнутый
	$fontRange->Font->Name = "Times New Roman"; // Имя шрифта
	$fontRange->Font->Size = 12;                // Размер шрифта

echo ' Ok';


?>



скрипт "ОК" возвращает но не запускает эксель на компе пользователя. а запускается процесс excel.exe на стороне сервера.
а мне нужно чтобы запустился сам ексель/ это вообще реально?
...
Рейтинг: 0 / 0
Создание COM объекта для
    #37814012
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman20,

сгенерированый ексель файл посылайте пользователю. А он там сам уж выберит открыть его в екселе или сохранить
...
Рейтинг: 0 / 0
Создание COM объекта для
    #37814026
Roman20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
РенатRoman20,

сгенерированый ексель файл посылайте пользователю. А он там сам уж выберит открыть его в екселе или сохранить

т.е. сохранять ексель файл на сервере и посылать через заголовки пользователю?
...
Рейтинг: 0 / 0
Создание COM объекта для
    #37814106
Roman20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
он даже не сохраняет
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
[SRC PHP]

<?php



$excel = new COM("excel.application");
$excel->Visible = 0;

//Create a new workbook
$wkb = $excel->Workbooks->Add();
$sheet = $wkb->Worksheets(1);

//This code adds the text 'myvalue' on row 2, column 4
$sheet->activate;
$cell = $sheet->Cells(2,4);
$cell->Activate;
$cell->value = 'myvalue';

$wkb->SaveAs("C:\\iladawebreports\\test.xls");

//close and free resources
$wkb->Close(false);
$excel->Workbooks->Close();
$excel->Quit();


echo ' Ok';


?>

[/SRC]

какой то процесс повисает екселевский повисает и все.
хотя на локальном компьютере сохраняет.
что не так?
...
Рейтинг: 0 / 0
Создание COM объекта для
    #37814192
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q257757 Microsoft does not currently recommend, and does not support, Automation of Microsoft Office applications from any unattended, non-interactive client application or component (including ASP, ASP.NET, DCOM, and NT Services), because Office may exhibit unstable behavior and/or deadlock when Office is run in this environment.
...
Рейтинг: 0 / 0
Создание COM объекта для
    #37814209
Roman20
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
?,
это новость 2 годичной давности. может быть что то изменишлось?
что мне в итоге посоветуете? экспортировать в xml файл?
...
Рейтинг: 0 / 0
Создание COM объекта для
    #37814561
Фотография Ренат
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman20,

юзайте готовые библиотеки для генерация всего офисного. И работаю стабильно кросоперационно, и быстро по сравнению с вордом котоырй надо еще закрыть, да еще и запустить...
...
Рейтинг: 0 / 0
Создание COM объекта для
    #37815594
?
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
?
Гость
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Создание COM объекта для
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]