Здравствуйте 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