URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 7349
[ Назад ]

Исходное сообщение
"Как добавить картинку в excel-файл?"

Отправлено tz , 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');

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


Содержание

Сообщения в этом обсуждении
"Как добавить картинку в excel-файл?"
Отправлено Hetzer , 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


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

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


"Как добавить картинку в excel-файл?"
Отправлено NuINu , 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');

:)


"Как добавить картинку в excel-файл?"
Отправлено tz , 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();

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


"Как добавить картинку в excel-файл?"
Отправлено tz , 09-Май-08 18:52 
Догадался))

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

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


"Как добавить картинку в excel-файл?"
Отправлено tz , 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


"Как добавить картинку в excel-файл?"
Отправлено NuINu , 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 баксов, и картинка лого вашей фирмы в вашем прайс листе :)


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

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

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

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

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

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

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

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