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

Вниз

Связь Delphi с Exel   Найти похожие ветки 

 
Вячеслав ©   (2001-12-21 17:16) [3]

// Please see:
// http://www.delphi3000.com/articles/article_1282.asp
// http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnautoma/html/msdn_thrdole.asp
// file://C:\Program Files\Microsoft Office\Office\1033\VBAXL9.CHM
procedure TForm1.DataSetToExcelFile(const Dataset: TDataset;
const Filename: string);
var
DefaultLCID: LCID;
i: Integer;
Row: Integer;
ExcelApp: TExcelApplication;
Worksheet: TExcelWorksheet;
Workbook: TExcelWorkbook;
begin
DefaultLCID := GetUserDefaultLCID;

ExcelApp := TExcelApplication.Create(Self);
ExcelApp.ConnectKind := ckNewInstance;
ExcelApp.Connect;
ExcelApp.ScreenUpdating[DefaultLCID] := False; // optimize presentation
try
// create workbook
Workbook := TExcelWorkbook.Create(Self);
Workbook.ConnectTo(ExcelApp.Workbooks.Add(TOleEnum(xlWBATWorksheet),
DefaultLCID));
// create worksheet
Worksheet := TExcelWorksheet.Create(Self);
Worksheet.ConnectTo(Workbook.Worksheets[1] as _Worksheet);
Worksheet.Name := "First WorkSheet";
// populate with Dataset information
Dataset.DisableControls;
try
// header
for i := 0 to Dataset.FieldCount - 1 do
begin
if Dataset.Fields[i].Visible then
begin
Worksheet.Cells.Item[1, i + 1].Value :=
Dataset.Fields[i].DisplayLabel;
Worksheet.Cells.Item[1, i + 1].ColumnWidth :=
Dataset.Fields[i].DisplayWidth;
end;
end;
Worksheet.Range["A1", "A1"].EntireRow.Interior.Color := clblue;
Worksheet.Range["A1", "A1"].EntireRow.Font.Bold := True;
Worksheet.Range["A1", "A1"].EntireRow.Font.Color := clWhite;
// data
Row := 2;
Dataset.First; // TODO: add a bookmark
while not Dataset.Eof do
begin
for i := 0 to Dataset.FieldCount - 1 do
begin
if Dataset.Fields[i].Visible then
begin
Worksheet.Cells.Item[Row, i + 1].Value :=
Dataset.Fields[i].Text;
Application.ProcessMessages;
end;
end;
Inc(Row);
Dataset.Next;
end;
// save it
Workbook.SaveAs(
EdFilename.Text, // Filename
XlWindowState(xlNormal), // FileFormat
EmptyParam, // Password,
EmptyParam, // WriteResPass
False, // ReadOnlyRecommended
False, // CreateBackup
xlNoChange, // AccessMode
xlUserResolution, // ConflictResolution
False, // AddToMru
EmptyParam, // TextCodepage
EmptyParam, // TextVisualLayout
DefaultLCID);
Workbook.Close;
finally
Dataset.EnableControls;
Workbook.Free;
Worksheet.Free;
end;
finally
ExcelApp.ScreenUpdating[DefaultLCID] := True; // optimize presentation
ExcelApp.Disconnect;
ExcelApp.Free;
end;
end;



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

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

Наверх




Память: 0.46 MB
Время: 0.013 c
3-99842
Петрович
2001-12-26 06:03
2002.01.31
Для чего нужна конструкция For Update


3-99839
Alex Y
2001-12-26 08:11
2002.01.31
MDAC


1-99938
дикое Кенгуру
2002-01-06 06:46
2002.01.31
Как вставить в TRichEdit такоеже выпадающее меню как в TEdit ? Чтобы не писать своё и не делать мартышкин труд.


3-99918
ЕвгенийА
2001-12-30 19:06
2002.01.31
Запись в поле...


1-99974
tovSuhov
2002-01-14 08:37
2002.01.31
PopupMenu