The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как добавить картинку в excel-файл?"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [ Отслеживать ]

"Как добавить картинку в excel-файл?"  
Сообщение от tz email(ok) on 04-Май-08, 21:51 
Есть xls-файл. Нужно вставить в одну из клеток картинку и сохранить файл. Как?

   use Spreadsheet::ParseExcel::SaveParser;
   use Spreadsheet::ParseExcel::FmtUnicode;
   my $oFmtR = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => "CP1251")
   my $oExcel = new Spreadsheet::ParseExcel::SaveParser;
   my $oBook = $oExcel->Parse('paks.xls',$oFmtR);
   my $iFmt = $oBook->{Worksheet}[0]->{Cells}[0][0]->{FormatNo};
   $oBook->{Worksheet}[0]->insert_image('A1','logo.bmp');
   $oExcel->SaveAs($oBook, 'paks2.xls');

-увы, не пашет.

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как добавить картинку в excel-файл?"  
Сообщение от Hetzer (ok) on 06-Май-08, 08:47 
>[оверквотинг удален]
>   use Spreadsheet::ParseExcel::SaveParser;
>   use Spreadsheet::ParseExcel::FmtUnicode;
>   my $oFmtR = Spreadsheet::ParseExcel::FmtUnicode->new(Unicode_Map => "CP1251")
>   my $oExcel = new Spreadsheet::ParseExcel::SaveParser;
>   my $oBook = $oExcel->Parse('paks.xls',$oFmtR);
>   my $iFmt = $oBook->{Worksheet}[0]->{Cells}[0][0]->{FormatNo};
>   $oBook->{Worksheet}[0]->insert_image('A1','logo.bmp');
>   $oExcel->SaveAs($oBook, 'paks2.xls');
>
>-увы, не пашет.

insert_image находится в Spreadsheet::WriteExcel

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Как добавить картинку в excel-файл?"  
Сообщение от tz email(ok) on 06-Май-08, 22:27 
>>-увы, не пашет.
>insert_image находится в Spreadsheet::WriteExcel

В общем, как решить проблему?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Как добавить картинку в excel-файл?"  
Сообщение от NuINu (??) on 07-Май-08, 11:47 
>>>-увы, не пашет.
>>insert_image находится в Spreadsheet::WriteExcel
>
>В общем, как решить проблему?

смотри за рукой:

my $oExcel = new Spreadsheet::ParseExcel::SaveParser();
my $oBook = $oExcel->Parse('paks.xls');
my $iFmt = $oBook->{Worksheet}[0]->{Cells}[0][0]->{FormatNo};

my $exBook=$oExcel->SaveAs($oBook, 'paks2.xls');
my @sheets = $exBook->worksheets();
my $sheet = $sheets[0][0];
$sheet->insert_image('A1','logo.bmp');

:)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Как добавить картинку в excel-файл?"  
Сообщение от tz email(ok) on 09-Май-08, 17:26 
Вот код на PHP:


код
--------------------------------------------------------------------------------
$xls = new COM("Excel.Application");  // Создаем новый COM-объект
$xls->Application->Visible = 1;       // Заставляем его отобразиться
$xls->Workbooks->Open("C:\\test_original.xls"); // Открываем документ, первую строку которого надо скопировать
$range=$xls->Rows(1);
$range->Copy();
//$range->Value='test';
$xls->Workbooks->Close();
*/
$xls = new COM("Excel.Application");  // Создаем новый COM-объект
$xls->Application->Visible = 1;       // Заставляем его отобразиться
$xls->Workbooks->Open("C:\\test.xls"); // Открываем документ, в первую строку надо вставить содержимое буфера обмена
$range=$xls->Rows(1);
$range->Select();
$range->Paste();// Не работает. :(
//$range->Value='test';
//$xls->Workbooks->Close();

Как сделать, чтобы вставка из буфера обмена работала? При копировании в буфер выводится диалоговое окно, предупреждающее, что в буфер обмена помещаеться большой объем данных,разрешить или отказать. Нужно автоматом отвечать, без вывода окна.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Как добавить картинку в excel-файл?"  
Сообщение от tz email(ok) on 09-Май-08, 18:52 
Догадался))

$xls->Application->ActiveSheet->Paste();

Но вот проблема: картинка в ячейке A1, является гиперссылкой. Справа от неё многострочный текст, тоже являющийся ссылкой. Но! Все ячейки в первой строке пусты! Т.е. картинка и текст ни в одной из ячеек не числятся... Тогда как их в другой Эксель-файл скопировать?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Как добавить картинку в excel-файл?"  
Сообщение от tz email(ok) on 09-Май-08, 19:17 
>смотри за рукой:
>$sheet->insert_image('A1','logo.bmp');
>:)

Обломись ! :)

Cause of error: Can't locate object method "insert_image" via packa
ge "Spreadsheet::WriteExcel::Worksheet" at test.pl line 25

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Как добавить картинку в excel-файл?"  
Сообщение от NuINu (??) on 10-Май-08, 13:50 
код пхп, и тем более с COM объектами, не рассматривается.
Кто хочет программировать под виндовс, пожалуйста. тока за тех поддержкой пусть на microsoft.com обращается.

>Обломись ! :)

В таком случае, надо писать: простите, я невнимательно следил за рукой и нифига на понял фокуса.
мне то какой смысл обламываться? У меня картинка прекрасно вставляется в файл формат exel. я его даже приятелю виндусятнику переслал, он ее смог
в нативном екселе просмотреть. Одна трабла, вместо формул, значения подставляются, правда меня это не сильно пока парит, да и оно к лучшему.
:)

>Cause of error: Can't locate object method "insert_image" via packa
>ge "Spreadsheet::WriteExcel::Worksheet" at test.pl line 25

бывает. :) даже не знаю что сказать.
200 баксов, и картинка лого вашей фирмы в вашем прайс листе :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Как добавить картинку в excel-файл?"  
Сообщение от tz email(ok) on 10-Май-08, 14:10 
>код пхп, и тем более с COM объектами, не рассматривается.

Буду надеяться, что кто-то другой рассмотрит. :)

>Кто хочет программировать под виндовс, пожалуйста. тока за тех поддержкой пусть на
>microsoft.com обращается.

На msdn не нашел ответа.

>Одна трабла, вместо формул, значения подставляются, правда меня

Нет, далеко не одна. Просто при копировании эксель-файла в новый файл средствами Spreadsheet::SaveExcel форматирование немного плывёт. :(

>200 баксов, и картинка лого вашей фирмы в вашем прайс листе :)

Так бы сразу и написали, что реально помочь только за деньги можете. :)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру