Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.01;
Скачать: CL | DM;

Вниз

Excel   Найти похожие ветки 

 
Alex870   (2004-07-16 03:34) [0]

Здравствуйте уважаемые знатоки OLE!
У меня такая задача: нужно по нажатию кнопки "Save" сохранять таблицу TStringGrid в файл Excel, при нажатии этой кнопки вызывается SaveDialog и нужно, чтобы файл сохранился именно с тем именем, которое в этом диалоге будет введено, но чтобы сам Excel не появлялся.
Вот мой код, что нужно написать вместо вопросов? Зарание спасибо!

procedure TForm1.N10Click(Sender: TObject);
var
Shabl : String;
Ex : TExcelApplication;
ISheet: Excel2000._Worksheet;
IRange: Excel2000.Range;
NewValueArray: OLEVariant;
I,J,n: integer;
begin
Shabl := GetCurrentDir+"\Shablon.xls";
Sd.DefaultExt := "*.xls";
Sd.Filter := "Файлы Excel|*.xls";
Sd.Title := "Сохранение расчета в формате Excel";
if Sd.Execute then
 begin
  Ex := TExcelApplication.Create(Self);
  Ex.Workbooks.Add(Shabl,0);
  if Assigned(Ex) then
  begin
   try
     ISheet := Ex.Worksheets.Item["Лист1"] as Excel2000.ExcelWorksheet;
     IRange := ISheet.Range["EditRange", EmptyParam];
     n := SData.ColCount-1;
     if n > 3 then n := 3;
     NewValueArray := VarArrayCreate([1,11,1,3], varVariant);
     for i := 1 to n do
     begin
      for J := 1 to 4 do NewValueArray[j,i] := SData.Cells[i,j-1];
      for J := 5 to 11 do NewValueArray[j,i] := ResData.Cells[i,j-4];
     end;
     IRange.Value := NewValueArray;
????????????????????????????????????????????????
   finally
     IRange := nil;
     ISheet := nil;
     Ex.Quit;
     FreeAndNil(Ex);
   end;
  end;
 end;
end;


 
SelloutS   (2004-07-16 07:18) [1]

http://delphiworld.narod.ru/base/excel_data_exchange.html


 
Digitman ©   (2004-07-16 08:36) [2]


> Alex870


а не проще ли вместо StringGrid"а использовать непосредственно рабочий лист Excel"а как внедренный в Ole-контейнер документ и редактировать/сохранять данные прямо в Excel-документе ?


 
Alex870   (2004-07-16 19:37) [3]

Уважаемый SelloutS!
Я знаю как заполнить таблицу Excel, а потом её открыть, это видно из кода, а вот как сохранить этот Excel"евский файл не открывая его с определенным именем, т.е. не делая Ex.visible[0] := true; а потом убить Excel, чтобы он не выдал сообщение "Сохранить данные?"....


 
Суслик ©   (2004-07-16 19:44) [4]


> а потом убить Excel, чтобы он не выдал сообщение "Сохранить
> данные?"....

fApp := CreateOleObject("Excel.Application");
fApp.Visible := False;
fApp.Interactive := False;
fApp.DisplayAlerts := False;
fApp.ScreenUpdating := False;



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

Текущий архив: 2004.08.01;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.041 c
14-1089718920
Nick-From
2004-07-13 15:42
2004.08.01
Какие проги есть, чтобы делать печати


1-1089961491
zedalex
2004-07-16 11:04
2004.08.01
Пробежка по ячейкам в StringGrid


1-1090233757
Саша
2004-07-19 14:42
2004.08.01
Отключение клавиши ПУСК


6-1086263642
Term
2004-06-03 15:54
2004.08.01
Как определить имя рабочей группы т.е. локальные настройки???


9-1081717014
Werwolf
2004-04-12 00:56
2004.08.01
Продолжение темы "Пиратов бесконечности"