|
|
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Вот, собственно, и пример без ОлеКонтейнера, принцип тот же: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. OleCheck-и, управление хендлами и пр. по вкусу, не в них суть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 15:56 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, т.е. если есть библиотека, создающая файл в TStream, его можно не на диск сохранять, а напрямую вбросить в Excel ? И любая разумная версия, скажем от 2000 и выше это умеет ? Здорово. Интересно сделали ли подобную штуку с OpenOffice.org ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:00 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUу меня наоборот возникает ощущение, что ты тут активно хочешь доказать, что у тебя писька длиннееЗачем доказывать? Я это итак знаю. А объяснить (а не доказать) я пытаюсь то, что ты некомпетентен и вредишь (при чём очень настойчиво, невзирая ни на что) своими ответами ТСу. Впрочем, я сам виноват, ибо не сразу признал тебя, болезного, не вспомнил, а в профиль не сразу заглянул, иначе не стал бы связываться и пачкаться. SOFT FOR YOUчто странно на фоне непонимания сути COM и OLEМда... Чего только не услышишь... А в чём в данном случае отличие? И в чём вообще может быть отличие, если одно "надстройка" над другим, а OleContainer не делает чего-то "левого" и сверхординарного? Впрочем, я уверен, что у юного падавана обязательно найдутся возражения, как минимум, что "использованы COM-вызовы, а не чистый OLE Automation!" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:05 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Ariochт.е. если есть библиотека, создающая файл в TStream, его можно не на диск сохранять, а напрямую вбросить в Excel ? И любая разумная версия, скажем от 2000 и выше это умеет ?И не только в Excel, а в Word и почти в любое приложение. "Почти", потому что последний вариант я не проверял, скажем, с каким-нибудь PDF или тем более DJVU может и не сработать. Насчёт версий - это по идее должно работать на всех версиях с 96 по 2003, насчёт 2007 и выше я не уверен, интерфейс-то поддерживается, а вот воспримет ли офис старый формат файлов - ХЗ, не уверен (у кого установлен MSO2007-20010 - проверьте, плиз, заодно и узнаем). AriochИнтересно сделали ли подобную штуку с OpenOffice.orgЯ в нем не силён, это надо у Юрия спрашивать. Но думаю, можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:10 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, Код: pascal 1. Яправильно понимаю, что второй параметр тут означает что-то типа "объект по умолчанию" ? Просто XML может грузиться совсем разнымипрограммами, даже Excel XML... Туда можно подставить интерфейс CLASS_ExcelOLEObject или CLASS_ExcelApplication чтобы точно грузилось в Excel ? У IOLEObject вроде нет метода грузиться с IStorage, так что предварительно создавать ExcelApplication и брать от него OLEObject видимо нет смысла ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:25 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Код: pascal 1. 2. 3. Stream.Write ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:33 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамВот, собственно, и пример без ОлеКонтейнера, принцип тот же: Да я ж ещё раз говорю, рад если у тебя длиннее. Тока зачем тебе со мной мериться ? По поводу листинга. Мож я слепой, но я вообще не увидел ни какой связи с OleAutomation и экземпляром ExcelApplication. Что собственно ТС (и другим нормальным людям) нужно. вот так должна выглядеть адекватная функция загрузки: Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:36 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
IStorage судя по всему грузит толькo старый XLS/BIFF файлы... Потому и Excel, что другие форматы не будет брать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:39 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
AriochStream.Write ? не, там правильно Read стоит AriochIStorage судя по всему грузит толькo старый XLS/BIFF файлы... Потому и Excel, что другие форматы не будет брать почему ты так подумал ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:44 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, Птому что IStorage - это интерфес к OLE Compound Document, частный случай которого старые офисные форматы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:55 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU, а, ну да... уже не с той стороны смотрю, кто кого читает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 16:56 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Arioch> Яправильно понимаю, что второй параметр тут означает что-то типа "объект по умолчанию" ? Нет. > Просто XML может грузиться совсем разнымипрограммами, даже Excel XML... XML-то тут при чём вообще? Когда грузиться будет xlsx - это не будет xml, архив и пр., само приложение об этом не знает. > У IOLEObject вроде нет метода грузиться с IStorage Метода нет, зато есть процедура. К чему все эти вопросы? > так что предварительно создавать ExcelApplication и брать от него OLEObject видимо нет смысла ? Конечно, нет, потому что нужно ровно обратное. Ты вообще понимаешь постановку задачи? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 18:24 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU> Тока зачем тебе со мной мериться ? Низачем. Это ты так решил. А я написал, что нет ни желания, ни времени это делать, но тебе ведь невдомёк, как обычно. По сути, ничего кроме переходов на личности и тупняка, перемежающегося флудом, предложить не можешь. > я вообще не увидел ни какой связи с OleAutomation и экземпляром ExcelApplication. Желающий увидеть да увидит. Для тех, кто на бронепоезде - я в комментариях написал аж три варианта перехода к OLEAutomation, на любой вкус. А перламутровые пуговицы - это не ко мне, бисер метать не привык. > Что собственно ТС (и другим нормальным людям) нужно. Ты за себя говори, а не за ТС и тем более за нормальных людей. Задача решена? Решена. OLE-переменная получена? Получена. > вот так должна выглядеть адекватная функция загрузки: Какие проблемы переделать приведённую процедуру в желаемую ("должна" - поржал) функцию? Добавится ровно одна строчка кода. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 18:29 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам , пока напоминает выкрики выскочки, который где-то в тырнетах нарыл, что у OleContainer есть метод загрузки из Stream и показано, какой к нему хедер заполнить а тем временем процедуры загрузки книги (файла) для какого то конкретного ExcelApplication как не было так и нет ну и к чему этот выпендрёж ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 18:41 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU> пока напоминает Что это напоминает я уже сказал - "гуру с трёхлетним опытом Excel" не только некомпетентен и неспособен это понять и принять, но ещё и хамит и троллит. На этом всё, по сабжу будет что-то? > а тем временем процедуры загрузки книги (файла) для какого > то конкретного ExcelApplication как не было так и нет Не может не быть того, что приведено. Повторяю - имеющий глаза да увидит, не запихивать же разжёванное в рот сопротивляющимся. Таки проблема с одной строчкой кода, переводящей приведённую процедуру в желаемую функцию? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 18:47 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам мог бы сразу написать, что не знаешь как. так было бы честнее к участникам форума ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 18:54 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гы... Это уже даже не смешно, а за гранью. Ну продолжим, посмотрим как дальше будешь вертеться: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. и? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 19:06 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOUа тем временем процедуры загрузки книги (файла) для какого то конкретного ExcelApplication как не было так и нет ну и к чему этот выпендрёж ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 19:15 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU> для какого то конкретного ExcelApplication как не было так и нет А чем последний приведённый вариант не конкретный? Только не надо щас про то, что в имеющийся WorkBook должны добавиться листы из БЛОБ-документа. Так что, действительно, "к чему этот выпендрёж" ? (с) Марш на повышение квалификации. На курсы всякие. Или книжки читать, в крайнем случае. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 19:20 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Ааа, я понял, мосье "гуру" настолько "компетентен", что не догадался заменить локальную переменную XLApp из старого кода на входной параметр ExcelApp... Очень показательно, очень. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 19:22 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам> Просто XML может грузиться совсем разнымипрограммами, даже Excel XML... XML-то тут при чём вообще? Когда грузиться будет xlsx - это не будет xml, архив и пр., само приложение об этом не знает. Не просто XML, а Excel XML. Формат такой. Но поскольку IStorage сделан под классические XLS/DOC и прочие OLE Compound, то и Excel XML и XLSX отпадают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 19:52 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Собственно вопрос был "откуда Винда узнает, что грузить нужно именно Excell, а не например Фотошоп. И ответ - в IStorage будет формат XLS, как подвид OLE Compound. Жаль,что другие форматы так не загрузишь, и видимо никак по другому тоже... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 19:53 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам твой пример во-первых, не взаимодействует с Excel. Во-вторых, не взаимодействует с конкретным ExcelApplication. В итоге у тебя нет примера без OleContainer-а. А пальцы гнёшь так, как будто сам написал Excel и технологию OleAutomation ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.01.2013, 20:45 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
я всё понимаю, но удосужится ли великий Гаджимурадов Рустам продемонстрировать не поделку на коленке, а нормальную рабочую функцию ? мои предположения: 1) похоже не получится. скорее всего оле-контейнер открывается по BOM в стриме, и как справедливо заметил Arioch , файлы типа xlsx не откроются, ибо там BOM zip-файла. 2) иначе говоря не Stream цепляется к оле-контейнеру (как необходимо), а наоборот оле-контейнер идентифицируется по стриму 3) скорее всего загрузка из памяти представляет временное сохранение в файл. как по сути уже советовали в 13769439 в итоге Гаджимурадов РустамЗачем доказывать? Я это итак знаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2013, 23:01 |
|
||
|
Открытие экселя из TMemoryStream
|
|||
|---|---|---|---|
|
#18+
SOFT FOR YOU> не поделку на коленке, а нормальную рабочую функцию ? Поделки в ближайшем зеркале. А нормальные рабочие функции уже приведены в нескольких вариантах. Додумывание сабжа и условий по ходу предлагаю оставить себе. > 3) скорее всего загрузка из памяти представляет временное сохранение в файл Бред. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.01.2013, 23:15 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=38115629&tid=2038723]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 518ms |

| 0 / 0 |
