Форум: "Основная";
Текущий архив: 2004.08.01;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.054 c