Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.07.04;
Скачать: CL | DM;

Вниз

Пересылка текста через Clipboard   Найти похожие ветки 

 
AlexG ©   (2004-06-20 19:06) [0]

У меня не получается в читабельном виде передать текст из Memo в Excel.
Я составляю в Memo таблицу с помощью #9 и #13#10. Данные имеют текстовый формат и русскую кодировку. После того как я составлю все таблицу я копирую содержимое Memo в Clipboard (CopyToClipboard), а потом вставляю из Excel:

     ExcelApp := CreateOleObject("Excel.Application");
     ExcelApp.Workbooks.Add(TmpParam);
     DataRow.SelectAll;
     DataRow.CopyToClipboard;
     ExcelApp.ActiveSheet.Paste;

Но в Excel весь текст становится нечитаемым (какая-то непонятная кодировка). :(
Как мне избежать такой перекодировки и вставить текст в читаемом виде? Контролировать это нужно на стороне Delphi или Excel?


 
YurikGL ©   (2004-06-20 19:28) [1]

А зачем через буфер работать? Можно же напрямую ячейкам текст присваивать.


 
AlexG ©   (2004-06-20 19:34) [2]

YurikGL
Так, как ты говоришь, дольше. Быстрее через вариантный массив и через клипбоард. Попробовал второй и наткнулся на эту кочку...


 
YurikGL ©   (2004-06-20 19:40) [3]


> AlexG ©   (20.06.04 19:34) [2]

Хочешь по быстрому - работай через XML. Paste я делал, как - не помню. Сейчас попробую найти.


 
YurikGL ©   (2004-06-20 19:44) [4]

Указанный тобой код сработал без проблем.

Попробуй
Memo1.SelectAll;
Memo1.CopyToClipboard;

Потом руками вставить в блокнот например, или еще куда. Так можно определить, кто путает кодировку.


 
AlexG ©   (2004-06-20 19:45) [5]

> YurikGL
Я XML еще не изучал. Книг нет, а до распечаток и-нетовских пока время не пускает. Поэтому не получится пока через XML :(...
Может мне нужно объект Clipboard создать? И через него управлять клипбоардом?


 
AlexG ©   (2004-06-20 19:47) [6]

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


 
YurikGL ©   (2004-06-20 19:49) [7]


> AlexG ©   (20.06.04 19:45) [5]

В целом, через буфер не советую т.к. пользователью будет печально, если у него что-то в буфере было, да и большой объем через буфер плохо прокачивать.

Попробуй объявить вариантный массив и присваивать его  excelapplication.range["a1","c3"]


 
evvcom ©   (2004-06-20 19:49) [8]


> Быстрее через вариантный массив и через клипбоард

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


 
AlexG ©   (2004-06-20 19:52) [9]

ОК. Ладно, буду через вариантный массив. Через клипбоард в целях расширения кругозора было :)



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

Текущий архив: 2004.07.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.049 c
14-1087429532
olookin
2004-06-17 03:45
2004.07.04
Как все печально


3-1086802083
yar
2004-06-09 21:28
2004.07.04
фильтрации по диапазону


14-1087237335
SergP
2004-06-14 22:22
2004.07.04
Приходилось ли кому-нить из вас учить кого-нить?


4-1085490669
миша
2004-05-25 17:11
2004.07.04
помогите в написании драйвера для нестанд устройства


14-1087445711
Dmitriy O.
2004-06-17 08:15
2004.07.04
Да ?