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

Вниз

Excel: сохраняет "ненужные" копии файлов   Найти похожие ветки 

 
click   (2007-01-14 14:31) [0]

текст процедуры:
var
e,sheet: variant;
countrec,i,a,q: integer;
rec: shortstring;
time: tsystemtime;
begin
getsystemtime(time);
if messagedlg("Экспортировать данные в файл Excel?",mtconfirmation,[mbyes,mbno],0)=mryes then
{*******////////// create excel list///////////*******}

e:=createoleobject("excel.application");
e.workbooks.open(form3.SaveDir+"\"+form3.ReportName+"\"+form3.ReportName+".xls");
sheet:=e.sheets.item[1];
//// calculate rec count////
i:=0;
repeat
inc(i);
rec:=stringgrid1.cells[i,0];
until rec="";
countrec:=i-1;
//// load cels to excel/////
a:=-1;
repeat
inc(a);
i:=0;
q:=-1;
repeat
inc(i);
inc(q);
sheet.Cells[a+11,i]:=stringgrid1.Cells[q,a+1];
if (i=7) or (i=8) or (i=9) or (i=13) or (i=14) then begin
sheet.Cells[a+11,i]:="";
q:=q-1;
end;
until i=18;
until a=countrec;
sheet.Cells[5,1]:=inttostr(time.wDay)+" "+form1.NumberToMonth(time.wMonth)+" "+inttostr(time.wYear)+" г.";
e.save;
e.quit;
e:=unassigned;
end;


проблема:
после работы этого участка кода программа как ей и положено сохраняет данные в *.xls файл по пути указанному в этой строке:
e.workbooks.open(form3.SaveDir+"\"+form3.ReportName+"\"+form3.reportName+".xls");
Но! кроме этого она делает копию файла в ~\Мои документы\ и называет его: RESUME.xlw, а это приводит к тому что если этот код выполняется повторно пользователю каждый раз выпадает сообщение о существовании этого файла и предложение его заменить...
вобщем как-то не очень красиво...
вопрос:
как избавится от резервной копии файла?
Спасибо заранее всем попытавшимся помочь!


 
Kostafey ©   (2007-01-14 15:27) [1]

Я так понял, что файл отчета создается вновь.

А что если вместо

> e.workbooks.open(form3.SaveDir+"\"+form3.ReportName+"\"+form3.ReportName+ ".xls");
...
> e.save;

использовать

e.WorkBooks.add;
...
e.ActiveWorkbook.SaveAs(form3.SaveDir+"\"+form3.ReportName+"\"+form3.ReportName+ ".xls");
e.ActiveWorkbook.close;
e.Quit;
e := UnAssigned;


 
click   (2007-01-15 13:40) [2]

Спасибо.
Но к сожалению такой вариант тоже не подходит т.к сам файл (шаблон) сначала копируется в заданную папку затем открывается, редактируется и сохраняется. Если же использовать SaveAs то вопрос о существовании такого файла и его замене возникнет 100%.
Я даже нашел почему именно в Мои Документы он сохраняет Resume.xlw - это путь который указан в Сервис - Настройка - Общие - Рабочая директория в Excel (как-то так, наверняка не помню - на работе стоит OOffice)... Если эту строку очистить то все работает идеально! А вот как очистить ее програмно или научить свою программу не заставлять Excel делать резерв-копию не знаю....


 
umbra ©   (2007-01-15 13:56) [3]


> А вот как очистить ее програмно


e.DefaultFilePath := "";


 
click   (2007-01-15 14:01) [4]

Сергей ты лучший! Пока попробовать возможности нет... Но чуствую ОНО!
Спасибо!



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

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

Наверх




Память: 0.45 MB
Время: 0.045 c
2-1169116390
mmip
2007-01-18 13:33
2007.02.04
Подключение к MS SQL


2-1168999667
DmitrichJ
2007-01-17 05:07
2007.02.04
Ну слишком медленный StringGrid. Что делать?


15-1168802434
так себе
2007-01-14 22:20
2007.02.04
RxLib


2-1168786829
Kostafey
2007-01-14 18:00
2007.02.04
Подтверждение SaveAs для Word и Excel


3-1163669328
darlock
2006-11-16 12:28
2007.02.04
Как определить пуст блоб или нет





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