Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Создание COM объекта для / 8 сообщений из 8, страница 1 из 1
28.05.2012, 10:11:20
    #37814006
Roman20
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание COM объекта для
Всем привет! Нужен совет умных людей.
Есть веб приложение крутится на сервере 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
28.05.2012, 10:17:54
    #37814012
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание COM объекта для
Roman20,

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

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

т.е. сохранять ексель файл на сервере и посылать через заголовки пользователю?
...
Рейтинг: 0 / 0
28.05.2012, 11:05:54
    #37814106
Roman20
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание COM объекта для
он даже не сохраняет
Код: 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
28.05.2012, 11:42:55
    #37814192
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание COM объекта для
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
28.05.2012, 11:52:11
    #37814209
Roman20
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание COM объекта для
?,
это новость 2 годичной давности. может быть что то изменишлось?
что мне в итоге посоветуете? экспортировать в xml файл?
...
Рейтинг: 0 / 0
28.05.2012, 15:14:19
    #37814561
Ренат
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Создание COM объекта для
Roman20,

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


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