Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / com-excel-php / 4 сообщений из 4, страница 1 из 1
22.12.2004, 18:03
    #32840133
копосов нв
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
com-excel-php
написан скрипт который формирует excel файл и сохраняет его по указанному пути через COM.
Код: plaintext
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.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
<html>
<head>
  <title></title>
</head>
<body>
<?php
//Kober - стандартный пример из хелпа
$excel = new COM("Excel.Application") or die("Unable to instanciate Excell");
//$excel->Application->Visible =  1 ;
//$excel->Visible =  1 ;
$excel->WorkBooks->Add();
$rangeValue = $excel->Range("A1");
$rangeValue->Value = "В выделенном блоке текст будет жирный, подчеркнутый, наклонный";
$rangeValue = $excel->Range("A2");
$rangeValue->Value = "Шрифт будет иметь высоту 12";
$rangeValue = $excel->Range("A3");
$rangeValue->Value = "Имя шрифта - Times New Roman";

$range=$excel->Range("A1:J10");               // Определяем область ячеек
$range->Select();                           // Выделяем ее
$fontRange=$excel->Selection();               // Присваиваем переменной выделенную область
// Далее задаем параметры форматирования текста в выделенной области
$fontRange->Font->Bold = true;              // Жирный
$fontRange->Font->Italic = true;            // Курсив
$fontRange->Font->Underline = true;         // Подчеркнутый
$fontRange->Font->Name = "Times New Roman"; // Имя шрифта
$fontRange->Font->Size =  12 ;

$min_color_index= 0 ;                  // Начальный индекс цвета
$max_color_index= 55 ;                 // Конечный индекс цвета
$start_position= 2 ;                   // Номер позиции, с которой начнется показ
                                     // индексов цвета
// Выводим надпись "Номер цвета"
$range = $excel->Range("A1:B1");
$range->Font->Bold = true;
$range = $excel->Range("A1");
$range->Value = "Номера цветов";
// Выводим значения индексов цвета и окрашиваем эти значения
// соответствующим цветом
for($i=$min_color_index;$i<=$max_color_index;$i++) {
  $range = $excel->Range("A".($i+$start_position));
  $range->Value = "ColorIndex = ".$i;
  $range->Font->ColorIndex = $i;
};
$excel->WorkBooks[ 1 ]->SaveAs("C:\\temp\\TestPHP".rand( 1 , 10000 ).".xls");
$excel->Quit();
$excel = null;
?>
</body>
</html>

Большая просьба ко всем кто работал с чем-то подобным, нужен скрипт который, работает на много корректней, т.к. в этом скрипте не поверяется
-сущест или нет файл с таким именем
-не обеспечивает проверку на зависание процесса Excel.exe
-не удаляет файлы (предполагается что файл следует после сохранения отдать пользователю и удалить)
и д.р.
Да, может подскажите где прочесть св-ва создаваемого объекта в частности Excel (WorkBooks[1], Value, Font и д.р.)

Буду очень благодарен всем кто поможет (примеры, url'ы)
...
Рейтинг: 0 / 0
22.12.2004, 19:28
    #32840301
hell
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
com-excel-php
Свойства читаешь в либом COM Browser или в реестре, где они собс-но и хранятся, а примера врядли достанешь, т.к. 99% php имеют сервера на Unix и по этой причине с супер-технологией OLE Automation дела не имеют
...
Рейтинг: 0 / 0
22.12.2004, 22:59
    #32840459
копосов нв
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
com-excel-php
hellСвойства читаешь в либом COM Browser или в реестре, где они собс-но и хранятся, а примера врядли достанешь, т.к. 99% php имеют сервера на Unix и по этой причине с супер-технологией OLE Automation дела не имеют

где именно в реестре?
...
Рейтинг: 0 / 0
23.12.2004, 10:29
    #32840876
Black
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
com-excel-php
автор-сущест или нет файл с таким именем
существует ли где??? на машине сервера или пользователя?
на сервере сам сделай проверку, а у пользователя ты не сможешь проверять существует или нет фаил, единственный выход делать другой Content-type:

Код: plaintext
1.
Content-type: application/vnd.ms-excel\n
Content-Disposition: attachment; filename=$filename\n

+ врядли будет у тебя совпадение, т.к. у тебя в коде присутствует функция rand()

автор-не обеспечивает проверку на зависание процесса Excel.exe
?!?!

автор-не удаляет файлы (предполагается что файл следует после сохранения отдать пользователю и удалить)
и д.р.
какой алгоритм передачи файла пользователю? почему ты не можеш сам написать пару строчек для удаления файла ?
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / com-excel-php / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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