Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Вниз

перенос данных из excel в power point   Найти похожие ветки 

 
kossxsasha ©   (2014-04-15 11:34) [0]

Ребята помогите пожалуйста я пишу уже не в один форум но все только читают и ни чего не отвечают.Я подозреваю что тут не так все сложно.С помощью одного хорошего человека я намуил вот такой код который ищет в PP определенный данные( в данном случае имеется только одна ссылка, но их будет много ) и заменяет их на другие.var
ppApp:variant;
ppPres, ppSlide, ppShape : Variant;
i, j : integer;
s : string;
procedure TForm1.Button1Click(Sender: TObject);

procedure FindAndReplace(ppPres: Variant; SearchStr, ReplaceStr: string);
begin
for i := 1 to ppPres.Slides.Count do
begin
ppSlide := ppPres.Slides.Item(i);
for j := 1 to ppSlide.Shapes.Count do
begin
ppShape := ppSlide.Shapes.Item(j);
s := ppShape.TextFrame.TextRange.Text;
s := StringReplace(s, SearchStr, ReplaceStr, [rfReplaceAll]);
ppShape.TextFrame.TextRange.Text := s;
end;
end;
end;
begin
ppApp:=CreateOleObject("PowerPoint. Application");
ppPres:= ppApp.Presentations.Open("D:\p.ppt" , False, False, True);
ppApp.visible:=true;
FindAndReplace(ppPres, "%сылка%", "привет");
end;

end.

Но ни как не получается сделать так, чтобы определенные данные искались в Excel и вставлялись в эти ссылки в PP. Пробовал аналогичным способом, но моих знаний и мастерства не хватило, так как я можно сказать новичок в этих делах. Помогите кто чем может добрые люди!


 
brother ©   (2014-04-15 12:03) [1]

а где работа с экселем?


 
kossxsasha ©   (2014-04-15 13:41) [2]

Вот именно, этот код только в РР ищет и заменяет в нем данные а поиск в екселе и вставка в РР у меня не получается. Допустим мы в екселе ищем  слово "привет" и заменяем в РР ссылку " %сылка%" на привет. Как это намутить я незнаю, аналогичный способ не работает у меня ведь я новичок.


 
brother ©   (2014-04-15 13:44) [3]

> Как это намутить

удачи!


 
kossxsasha ©   (2014-04-15 13:46) [4]

Спасибо за наилучший совет в моей жизни!


 
brother ©   (2014-04-15 14:14) [5]

прямого кода тут не дадут - привыкай...
а, удачи, это я Вам пожелал разобраться с проблеммой, но тк Вы и понятия не имеете, что да как, Вам трудно будет ...


 
kilkennycat ©   (2014-04-15 14:21) [6]

http://nech.tamb.ru/pages/delphi_excel.htm


 
kossxsasha ©   (2014-04-15 15:41) [7]

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


 
junglecat   (2014-04-15 15:49) [8]

> Причем тут прямой код

а нужен был кривой код?)

концептуально поиск по книге экселя мало чем отличается от поиска по коллекциям поверпоинта. Названия объектов только разные, да и то не всегда


 
kossxsasha ©   (2014-04-15 15:56) [9]

> Причем тут прямой код

>а нужен был кривой код?)

нет просто я так понял что мне сказали что я такой то лентяй сам не хочу сделать мол здесь тему создал чтоб за меня все сделали..
как фунуцию поиска в екселе сделать это я разберусь я не понимаю только как мне найти там и запомнить потом найти тут и заменить на то что я нашел там, этак какая то функция в функции чтоли получается...


 
junglecat   (2014-04-15 16:04) [10]

> как мне найти там и запомнить потом найти тут и заменить
> на то что я нашел там

Data := ReadFromExcel();
WriteToPowerPoint(Data);


 
kossxsasha ©   (2014-04-15 16:06) [11]

kilkennycat ©   (15.04.14 14:21) [6]
http://nech.tamb.ru/pages/delphi_excel.htm

я знаю как работать с екселем через делфи у меня проблема в том что я не знаю как мне воспользоваться делфи как промежуточной программой между екселем и РР, как мне в одной функции вывести результат поиска в другой


 
kossxsasha ©   (2014-04-15 16:07) [12]

> как мне найти там и запомнить потом найти тут и заменить
> на то что я нашел там

Data := ReadFromExcel();
WriteToPowerPoint(Data);

спасибо это можно сказать единственное что я путное видел!


 
Inovet ©   (2014-04-15 16:09) [13]

> [10] junglecat   (15.04.14 16:04)
> Data := ReadFromExcel();
> WriteToPowerPoint(Data);

В вопросе что-то про ссылки. Это типа поменяли в Ексел и тут же видим изменения в Пауерпоинт?


 
kossxsasha ©   (2014-04-15 16:12) [14]

нет нет ссылка это типо закладка в РР (%сылка%) мы просто ищем в екселе слово "привет" и вставляем его в РР вместо  "%сылка%".


 
Inovet ©   (2014-04-15 16:13) [15]

> [12] kossxsasha ©   (15.04.14 16:07)
> спасибо это можно сказать единственное что я путное видел!

Тоже самое

> [9] kossxsasha ©   (15.04.14 15:56)
> этак какая то функция в функции чтоли получается...

Как будто такого не бывает, хоть 100500, только читать плохо. Это при том, что "я знаю как работать с екселем через делфи". Как-то сомнения возникают в истинности утверждения

WriteToPowerPoint(ReadFromExcel());


 
kossxsasha ©   (2014-04-15 16:18) [16]

FindAndReplace(ppPres, "%сылка%", "РЕЗУЛЬТАТ ПОИСКА В ЕКСЕЛЕ");

вот что то вроди этого как мне сделать ?


 
Inovet ©   (2014-04-15 16:26) [17]

Вот это "РЕЗУЛЬТАТ ПОИСКА В ЕКСЕЛЕ" где? "я знаю как работать с екселем через делфи".


 
kossxsasha ©   (2014-04-15 16:32) [18]

хорошо будет вам то что вы просите.


 
kilkennycat ©   (2014-04-15 17:20) [19]


> как мне в одной функции вывести результат поиска в другой

это означает полное незнание программирования (неважно даже язык и среда).
отсутствие базовых понятий.
помочь бесплатно не представляется возможным.


 
KilkennyCat ©   (2014-04-15 17:25) [20]


> хорошо будет вам то что вы просите.

в автосервисе тож так себя ведешь? ах, да, ты ж сам все чинишь... так же, как и программируешь.


 
Dennis I. Komarov ©   (2014-04-15 22:57) [21]


> kossxsasha ©

Попробую объяснить:
Дело в том, что работа из Delphi (врочем даже не важно) с Excel и PowerPoint одинакова, вернее через тот же интерфейс. Заявление

> я знаю как работать с екселем через делфи у меня проблема
> в том что я не знаю как мне воспользоваться делфи как промежуточной
> программой между екселем и РР, как мне в одной функции вывести
> результат поиска в другой

противоречит смыслу, ибо Вы не знаете (возможно откопали где-то на просторах, но НЕ ЗНАЕТЕ)
Отсюда получилось [5], и пока Вы этого не осознаете, дальше будет трудно...

Сложно судить о необходимости "промежуточного звена" ибо PP умеет работать с данными (наверно с 2007, может и ранее)


 
kossxsasha ©   (2014-04-16 13:40) [22]

Вот для чего такие форумы создаются? Я от вас не попросил написать мне код! Если я не понимаю  в программировании это не значит что я не могу что то пробовать свое,  с кодом мне помогли но ни откуда я не сливал его! Поэтому я всего лишь попросил наставить на путь дабы не писать (> как мне в одной функции вывести результат поиска в другой)вот такие глупости так как я знаю что это глупость но если до меня не допрет и поэтому и пишу в  раздел НАЧИНАЮЩИМ и как я понимаю это вообще ни на что не влияет если тут сидят люди которые только и могут написать что  я не смыслю в программировании все сливаю и прошу за меня код написать тратите только свое и мое время если нет у вас желания помочь ( не код написать а подсказать как можно реализовать ) то зачем мне отвечать тогда? сидите в контакте и там трольте всякие посты!

PS   >Inovet я отвечу Вам позже просто на работе завал..


 
kossxsasha ©   (2014-04-16 13:43) [23]

> Komarov ©
связующее звено делфи мне необходимо по определенным причинам, я пробовал реализовать мою задачи стандартными средствами MS Office но это не то что хотелось бы..


 
Ega23 ©   (2014-04-16 14:00) [24]

Не получается читать без знаков препинания. А раз не получается, то потом не хочется. А раз не хочется, то и не буду.


 
brother ©   (2014-04-16 14:17) [25]

> сидите в контакте и там трольте всякие посты!

для нас это он и есть... но, Вы не поняли главного: мы хотим, чтобы Вы поняли суть своей проблеммы и тогда решение будет очевидным...


 
kossxsasha ©   (2014-04-16 14:17) [26]

>Ega23 ©
Еще один шутник? Спешал фор ю
Вот для чего такие форумы создаются? Я от вас не попросил написать мне код! Если я не понимаю  в программировании-это не значит, что я не могу что то пробовать свое,  с кодом мне помогли, но ни откуда я не сливал его! Поэтому я всего лишь попросил наставить на путь дабы не писать (> как мне в одной функции вывести результат поиска в другой)вот такие глупости, так как я знаю что это глупость, но если до меня не допрет, поэтому и пишу в  раздел НАЧИНАЮЩИМ и как я понимаю это вообще ни на что не влияет, если тут сидят люди которые только и могут написать, что я не смыслю в программировании, все сливаю и прошу за меня код написать. Тратите только свое и мое время, если нет у вас желания помочь ( не код написать, а подсказать как можно реализовать ) то зачем мне отвечать тогда? сидите в контакте и там трольте всякие посты!


 
kossxsasha ©   (2014-04-16 14:21) [27]

>brother ©
для нас это он и есть... но, Вы не поняли главного: мы хотим, чтобы Вы поняли суть своей проблеммы и тогда решение будет очевидным...

Подскажите пожалуйста каким образом мне помогают понять суть проблемы? Словами "да ты ни чего не смыслишь в программировании"  или " полюбому код слил теперь сидит тут просит чтоб все сделали" ?


 
kossxsasha ©   (2014-04-16 14:24) [28]

>brother ©
для нас это он и есть...
Вот именно Вы так к этому и относитесь, на других форумах я такого еще не встречал, там на мой взгляд люди которые хотят помочь человеку разобраться в его проблеме, а не как в контакте посидеть потролить НАЧИНАЮЩЕГО. Тоже самое, что учитель будет ржать над первоклассниками говоря какие они тупые.


 
brother ©   (2014-04-16 14:30) [29]

читаем [6], делаемс вывод: работа с s:=Excel.Range["b2"]; для Вас понятна и проста...
читаем [11] и думаем, почему не понятно как делать, что именно не получается, где ВАШ нерабочий код для разбора ошибок?
зы. Вы ничего нам не показываете из своих попыток, но настойчиво утверждаете, что все знаете...
ззы. Чего именно Вы хотите от данного сообщества? (надеюсь, опять же, не кода?)


 
brother ©   (2014-04-16 14:32) [30]

> посидеть потролить НАЧИНАЮЩЕГО

ничего подобного! здесь, по сравнению с другими форумами, немного другой подход к вопрошающему, который может восприниматься как надменность и зазнайство, но уверяю Вас: ЭТО НЕ ТАК!
Четко формулируйте вопрос - будет четкий ответ.


 
kossxsasha ©   (2014-04-16 14:48) [31]

brother ©   (16.04.14 14:32) [30]
> посидеть потролить НАЧИНАЮЩЕГО

ничего подобного! здесь, по сравнению с другими форумами, немного другой подход к вопрошающему, который может восприниматься как надменность и зазнайство, но уверяю Вас: ЭТО НЕ ТАК!
Четко формулируйте вопрос - будет четкий ответ.

Я очень надеюсь на это, просто поймите я сам люблю помогать людям  чем могу , дайте мне времени я вам предоставлю свои нерабочие попытки, просто сегодня на работе завал, единственное чего я опасаюсь, так это того что после предоставления моих попыток опять начнется "да ты ни чего не смыслишь" без помощи направления на путь решения..


 
brother ©   (2014-04-16 14:56) [32]

не надо бояться! показывайте, будем смотреть...


 
kossxsasha ©   (2014-04-16 14:59) [33]

>brother ©  
не надо бояться! показывайте, будем смотреть...

Спасибо!


 
kossxsasha ©   (2014-04-21 14:14) [34]

Как и обещал, сегодня немного посидел с Delphi и вот что вышло..

procedure TForm1.Button1Click(Sender: TObject);

procedure FindAndReplace(ppPres: Variant; SearchStr, ReplaceStr: string);
begin
 for i:= 1 to ppPres.Slides.Count do
 begin
   ppSlide:= ppPres.Slides.Item(i);
   for j:= 1 to ppSlide.Shapes.Count do
   begin
     ppShape:= ppSlide.Shapes.Item(j);
     s:= ppShape.TextFrame.TextRange.Text;
     s:= StringReplace(s, SearchStr, ReplaceStr, [rfReplaceAll]);
     ppShape.TextFrame.TextRange.Text:=s;
     end;
 end;
end;
begin
 exel:=CreateOleObject("Excel.Application");
 exel.Workbooks.Open("D:\e.xls");
 exel.visible:=true;

 ppApp:=CreateOleObject("PowerPoint.Application");
 ppPres:= ppApp.Presentations.Open("D:\p.ppt", False, False, True);
 ppApp.visible:=true;
 e:=exel.Range["a1"];
 FindAndReplace(ppPres, "%сылка%", e);

end;

end.


 
brother ©   (2014-04-21 14:21) [35]

теперь вопросы...


 
kossxsasha ©   (2014-04-21 14:29) [36]

Вопрос в том что FindAndReplace(ppPres, "%сылка%", e); не работает, получалось только то что я из одной ячейки копировал в другую, а  заменить %сылка% на то что в ячейке а1 н получается..(


 
junglecat   (2014-04-21 14:45) [37]

а там реально должно быть "сылка", с одной "с"?


 
kossxsasha ©   (2014-04-21 14:57) [38]

и вправду по своей глупости там должно быть две с,но теперь почему то у меня вылазиет ошибка, хотя раньше все было нормально, " project project1.exe raised exception class eoleexception with message Вызов был отклонен Process stopped Use step or run to contine" и выделяет e:=exel.Range["a1"]; эту строку..


 
junglecat   (2014-04-21 15:01) [39]

в конце неплохо бы делать exel.Quit; exel := Unassigned;
то же и для ppApp


 
kossxsasha ©   (2014-04-21 15:10) [40]

>junglecat
Спасибо я хотел сделать это позже когда заработает копирование)



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2015.09.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.051 c
15-1419680039
alexdn
2014-12-27 14:33
2015.09.10
Папки в Skype


2-1395675878
SKIPtr
2014-03-24 19:44
2015.09.10
как получить формат DateTime из двух DateTimePicker


4-1272196394
Danger
2010-04-25 15:53
2015.09.10
владелец процесса, ошибка при определении


15-1418851802
Юрий
2014-12-18 00:30
2015.09.10
С днем рождения ! 18 декабря 2014 четверг


2-1398151360
Who_are_you?
2014-04-22 11:22
2015.09.10
Начало и размер буфера динамической переменной





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский