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

Вниз

В поле таблицы БД сохранен файл Excel можно ли открыть его в Exce   Найти похожие ветки 

 
antoniz   (2003-06-24 12:04) [0]

В поле таблицы БД сохранен файл Excel можно ли открыть его в MS Excel без использования временного файла (предварительно не выгружая значение поля в файл). Т.е. требуется загрузить из потока. На сколько я знаю это делается через интерфейсы IPersistStream и IPersistStorage. Но не знаю как это сделать. Может кто пример даст или стаью по этой теме


 
Serginio   (2003-06-24 14:06) [1]

Посмотри какй ProgID загружает в контейнер. Там Лист Microsoft Exсel. Он как раз и поодерживает IPersistStream; Посмотри TOleComponent.


 
Serginio   (2003-06-24 14:08) [2]

Excel.Sheet.5
{00020810-0000-0000-C000-000000000046}


 
antoniz   (2003-06-24 14:42) [3]

Что-то я не понял эту идею


 
Serginio   (2003-06-24 14:56) [4]

Для непонятливых. Загружай в ОлеКонтейнер Лист Microsoft Exсel. У олеконтейнера есть метод LoadFromStream(Stream: TStream);
Или
Var
List:Idispatch;
Stream:IPersistStream;
Begin
List:=CreateOLeObject("Excel.Sheet.5");
Stream:=List As IPersistStream;


 
antoniz   (2003-06-24 15:07) [5]

А как файл в ёкселе открыть, я вот это не понял


 
antoniz   (2003-06-24 15:12) [6]

Кстати, забыл сказать такой код у меня не проходит, я уже задавал вопрос почему пишется ошибка, что "interface not supported". Я почему и не знаю как дальше двигаться. А OleContainer я использвать не хочу. Идея следующая выгрузить из блоба данные в поток. Потом эти данные закинуть в переменную типа IStream. Далее из нее можно в переменную IPersistStream данные закачать. Только как эту переменную с ёкселем связать я не знаю.


 
Serginio   (2003-06-24 15:22) [7]

TOleControl поддерживает кучу интерфейсов в состав который входят IPersistStreamInit и IPersistStorage. Через них можно извлечь и записать данные через их методы CopyTo. Но все зависит как ты сохраняешь.


 
antoniz   (2003-06-24 15:31) [8]

Так а без него не подскажешь как сделать. Я уже 4-й день парюсь, в инете не фига не нашел, тут парень один ссыдку кидал, она не работает.


 
Serginio   (2003-06-24 15:33) [9]

Загружай данные в IStorage. Посмотри код OleContainer LoadFromStream и SaveToStream. Если ты сохраняешь файл целиком, то тебе придется обрабатывать IStorage .Это обыкновенный Doc файл.


 
antoniz   (2003-06-24 15:37) [10]

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


 
Serginio   (2003-06-24 15:45) [11]

Вот пример с F1Book копирования данных
procedure TForm1.Button1Click(Sender: TObject);
var stg1,stg2:IPersistStorage; st:IStorage;
begin
st:=nil;
stg1:=IDispatch(F1Book1.OleObject) as IPersistStorage;
stg2:=IDispatch(F1Book2.OleObject) as IPersistStorage;
OleCheck(StgCreateDocfile(nil, STGM_READWRITE
or STGM_SHARE_EXCLUSIVE or STGM_CREATE, 0,St));
OleCheck(stg1.Save(st,false));
If assigned(st) Then
stg2.Load(st)
end;


 
Serginio   (2003-06-24 15:55) [12]

http://www.sources.ru/delphi/internet/save_html_source_to_disk.shtml
http://adam.stup.ac.ru/Developer/ArticleDetail.aspx?ar=676&l=n&mi=92&mic=244
http://www.bytemag.ru/Article.asp?id=383



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

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

Наверх





Память: 0.47 MB
Время: 0.008 c
1-20135
INCOGNITO
2003-06-25 04:37
2003.07.07
ReadOnly в ComboBox и ещё пара вопросов


9-19947
Gayrus
2003-01-24 02:42
2003.07.07
OpenGL


1-20069
anod
2003-06-25 15:55
2003.07.07
Как определить одновременное нажатие клавиш


11-20021
Alexander
2002-10-22 11:29
2003.07.07
Обработка сообщений.


14-20236
Дмитрий К.К.
2003-06-19 06:15
2003.07.07
Именинники 19 июня





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский