asp+ms word
От: alexandern  
Дата: 05.04.02 12:05
Оценка:
Привет.

Реально ли сделать такую фишку.
Из asp СОЗДАТЬ .doc файл, занести туда какие-либо данные и отослать созданный файл клиенту.
А если вы имеете примерчик на эту тему, это было бы просто суппер.

Заранее большое спасибо.
Re: asp+ms word
От: Курилка Россия http://kirya.narod.ru/
Дата: 05.04.02 12:32
Оценка:
Здравствуйте alexandern, Вы писали:

A>Привет.


A>Реально ли сделать такую фишку.

A>Из asp СОЗДАТЬ .doc файл, занести туда какие-либо данные и отослать созданный файл клиенту.
A>А если вы имеете примерчик на эту тему, это было бы просто суппер.

A>Заранее большое спасибо.


без проблем, глянь хоть сюда или сюда,
там делов-то открыть ворд, новый док создать:
Dim App,Doc
Set App = Server.CreateObject("Word.Application")
Set Doc = MSWord.Documents.Add

, запихать что нужно, во вр. файле сохранить, выдать тип миме вордовый, выдать содержимое вр. файла, затем его убить.
Совсем готового кода нет, извини.
Re[2]: asp+ms word
От: Ort США  
Дата: 05.04.02 14:24
Оценка:
Только когда будешь Word из ASP поднимать, не забудь
DCOM (dcomcnfg.exe) настроить для того чтобы его
internet user мог поднимать на сервере.
"По мне, уж лучше пей, да дело разумей"
Re: asp+ms word
От: H.Sheremet  
Дата: 08.04.02 10:10
Оценка: 2 (1)
Здравствуйте alexandern, Вы писали:

A>Привет.


A>Реально ли сделать такую фишку.

A>Из asp СОЗДАТЬ .doc файл, занести туда какие-либо данные и отослать созданный файл клиенту.
A>А если вы имеете примерчик на эту тему, это было бы просто суппер.

A>Заранее большое спасибо.


Есть еще один вариант, попроще. Если ты хочешь, что бы клиент получил файл сразу на редактирование, в окне эксплорера, то пропиши:
<% Response.ContentType = "application/msword" %>

а дальше — наливай скриптом обыкновенный HTML, ни о чем не задумываясь :)
Спасибо за внимание :-D
Re[2]: asp+ms word
От: Zerg Россия  
Дата: 09.04.02 08:09
Оценка:
Здравствуйте H.Sheremet, Вы писали:

H.S>а дальше — наливай скриптом обыкновенный HTML, ни о чем не задумываясь


К сожалению, метод "наливки скриптом обыкновенного HTML" не проходит в Netscape 4 (не знаю, правда, как будет это работать в Netscape 6)

А все же, есть ли метод передать файл клиенту без сохранения его во временный файл?
Re[3]: asp+ms word
От: H.Sheremet  
Дата: 09.04.02 08:23
Оценка:
Здравствуйте Zerg, Вы писали:

Z>К сожалению, метод "наливки скриптом обыкновенного HTML" не проходит в Netscape 4 (не знаю, правда, как будет это работать в Netscape 6)


Z>А все же, есть ли метод передать файл клиенту без сохранения его во временный файл?


Не знаю насчет Netscape 6, а вот Opera шестая меня порадовала вопросом открыть ли asp-шный файл Word или сохранить

И вопрос, мне до сих пор неясный, каким образом сохранить на сервак изменения?
Спасибо за внимание :-D
Re[3]: asp+ms word
От: Курилка Россия http://kirya.narod.ru/
Дата: 09.04.02 08:42
Оценка:
Здравствуйте Zerg, Вы писали:

Z>Здравствуйте H.Sheremet, Вы писали:


H.S>>а дальше — наливай скриптом обыкновенный HTML, ни о чем не задумываясь


Z>К сожалению, метод "наливки скриптом обыкновенного HTML" не проходит в Netscape 4 (не знаю, правда, как будет это работать в Netscape 6)


Z>А все же, есть ли метод передать файл клиенту без сохранения его во временный файл?


а что тебе не нравятся врем. файлы?
всё равно тебе придётся как-то док выцеплять, не знаю может можно как-нить через COM (ну не спец я в этом... ) , заставить ворд в память писать. Но это тебе нужно будет программить свой COM-объект — мороки я думаю будет гораздо больше чем с временными файлами.
Re[4]: asp+ms word
От: Zerg Россия  
Дата: 09.04.02 08:45
Оценка:
Здравствуйте Курилка, Вы писали:

К>а что тебе не нравятся врем. файлы?

К>всё равно тебе придётся как-то док выцеплять, не знаю может можно как-нить через COM (ну не спец я в этом... ) , заставить ворд в память писать. Но это тебе нужно будет программить свой COM-объект — мороки я думаю будет гораздо больше чем с временными файлами.

Ну может быть у ворда есть какой-либо метод записи файла в поток? Я, к сожалению, ничего такого не нашел
Re[5]: asp+ms word
От: Курилка Россия http://kirya.narod.ru/
Дата: 09.04.02 08:58
Оценка:
Здравствуйте Zerg, Вы писали:

Z>Здравствуйте Курилка, Вы писали:


К>>а что тебе не нравятся врем. файлы?

К>>всё равно тебе придётся как-то док выцеплять, не знаю может можно как-нить через COM (ну не спец я в этом...:shuffle: ) , заставить ворд в память писать. Но это тебе нужно будет программить свой COM-объект — мороки я думаю будет гораздо больше чем с временными файлами.

Z>Ну может быть у ворда есть какой-либо метод записи файла в поток? Я, к сожалению, ничего такого не нашел :(


Нету ни фига, да и как ты себе это представляешь?
Типа doc.GetAsBinary()?
В реальной(не очень вебной офисной) жизни такое мягко скажем "не нужно".
Единственное, повторюсь, что приходит в голову — всякие IStorage/IStream, но это, ИМХО:
1. кривовато
2. не так уж тривиально
Re[4]: asp+ms word
От: Zerg Россия  
Дата: 09.04.02 08:59
Оценка: 3 (2)
Здравствуйте H.Sheremet, Вы писали:

H.S>И вопрос, мне до сих пор неясный, каким образом сохранить на сервак изменения?


Я делал так (правда с файлом Excel, но каккая разница ):


Сначала получал значение для FileName в формате 'ddmmyyyyhhmmss_'+3 случайные цифры. Может это и извращение — давать такое имя, но что-то хотелось фиксировать дату и время создания файла...
Потом получал для него значение FilePath.
(В настройках IIS нужно установить права записи на папку '\xls_temp')

dim FileName
FileName = Now
Dim regEx
Set regEx = New RegExp
regEx.Pattern = "\D"
do while regEx.Test(FileName)
  FileName = regEx.Replace(FileName, "")
loop    
    
Randomize
FileName = FileName&"_"&(CStr(CInt(Rnd(10)*1000)))
FilePath = Server.MapPath("\xls_temp\"&FileName&".xls")


После заполнения xsl-файла сохраняю его:

  xls.ActiveWorkbook.SaveAs(FilePath)



И потом уж передаю файл клиенту и удаляю его с диска:


 Dim objStream
 Set objStream = Server.CreateObject("ADODB.Stream")
 objStream.Type = adTypeBinary
 objStream.Open
 objStream.LoadFromFile FilePath
        
 with response
  .Addheader "Content-Disposition", "attachment; filename=compare.xls" 
  .ContentType = "application/msexcel"        
  .BinaryWrite objStream.Read
 end with

 objStream.Close
 Set objStream = Nothing

 dim fso
 Set fso=CreateObject("Scripting.FileSystemObject")
 fso.DeleteFile FilePath, True 
 set fso = Nothing


Работает все без проблем.
Вот только для IE5.5 для загрузки файла надо не кликать по ссылке, а в контекстном меню выбрать "Save Target As...", иначе он пытается открыть файл с расширение asp
Re[5]: asp+ms word
От: alexandern  
Дата: 09.04.02 13:26
Оценка:
Всем спасибо за интересные ответы. Единственно возможный вариант оказался метод прямой заливки хтмля, т.к. word отсутствует на серваке. Отдельное спасибо Zerg и H.Sheremet.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.