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

Вниз

Связь 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.006 c
4-100123
Дмитрий Д.
2001-12-04 14:35
2002.01.31
Помогите со структурой плиз!


1-99978
Leviathan
2002-01-01 04:27
2002.01.31
Много таймеров


1-99944
rastaman
2002-01-13 15:12
2002.01.31
Спасите меня!!!


1-99954
Yuraz
2002-01-13 19:03
2002.01.31
Помогите! Не могу разобраться, почему в этой проц. печатается менее 6 букв


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





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