Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.04.2008, 17:02   #1
SeЯgey
Пользователь
 
Регистрация: 03.04.2008
Сообщений: 50
Вопрос Экспортировать TStringGrid и chat в Excel-файл

Экспортировать TStringGrid в Excel-файл

Код который я использую
Код:
uses
   ComObj;

 function RefToCell(ARow, ACol: Integer): string;
 begin
   Result := Chr(Ord('A') + ACol - 1) + IntToStr(ARow);
 end;

 function SaveAsExcelFile(AGrid: TStringGrid; ASheetName, AFileName: string): Boolean;
 const
   xlWBATWorksheet = -4167;
 var
   Row, Col: Integer;
   GridPrevFile: string;
   XLApp, Sheet, Data: OLEVariant;
   i, j: Integer;
 begin
   // Prepare Data 
  Data := VarArrayCreate([1, AGrid.RowCount, 1, AGrid.ColCount], varVariant);
   for i := 0 to AGrid.ColCount - 1 do
     for j := 0 to AGrid.RowCount - 1 do
       Data[j + 1, i + 1] := AGrid.Cells[i, j];
   // Create Excel-OLE Object 
  Result := False;
   XLApp := CreateOleObject('Excel.Application');
   try
     // Hide Excel 
    XLApp.Visible := False;
     // Add new Workbook 
    XLApp.Workbooks.Add(xlWBatWorkSheet);
     Sheet := XLApp.Workbooks[1].WorkSheets[1];
     Sheet.Name := ASheetName;
     // Fill up the sheet 
    Sheet.Range[RefToCell(1, 1), RefToCell(AGrid.RowCount,
       AGrid.ColCount)].Value := Data;
     // Save Excel Worksheet 
    try
       XLApp.Workbooks[1].SaveAs(AFileName);
       Result := True;
     except
       // Error ? 
    end;
   finally
     // Quit Excel 
    if not VarIsEmpty(XLApp) then
     begin
       XLApp.DisplayAlerts := False;
       XLApp.Quit;
       XLAPP := Unassigned;
       Sheet := Unassigned;
     end;
   end;
 end;

 // Example: 

procedure TForm1.Button1Click(Sender: TObject);
 begin
   if SaveAsExcelFile(stringGrid1, 'My Stringgrid Data', 'c:\MyExcelFile.xls') then
     ShowMessage('StringGrid saved!');
 end;
Как сделать чтобы у меня несколько строниц было в excel и в них данные из нескольких stringgrid
И как экспортировать в тот же файл графики соответственно (компонент chart)

Последний раз редактировалось SeЯgey; 29.04.2008 в 20:18.
SeЯgey вне форума Ответить с цитированием
Старый 29.04.2008, 19:13   #2
Virtson
Владимир М.
Участник клуба
 
Аватар для Virtson
 
Регистрация: 30.10.2006
Сообщений: 1,289
По умолчанию

Sheet := XLApp.Workbooks[1].WorkSheets[1];
здесь второй индекс - номер страницы.

соответственно, создать заранее XLApp.Workbooks.Add(xlWBatWorkSheet ); нужно несколько.

с диаграммами сложнее.
Берегите друг друга!
Virtson вне форума Ответить с цитированием
Старый 30.04.2008, 15:21   #3
SeЯgey
Пользователь
 
Регистрация: 03.04.2008
Сообщений: 50
Вопрос

у меня не получается добавить новую страницу!!!
Кто знает помогите срочно нужно?
и можно дописатьв уже существующий файл?
т.е. добавить страницу и экспортировать в нее stringgrid
SeЯgey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как открыть файл в Excel globalhunter Общие вопросы Delphi 2 11.02.2008 01:30
Как экспортировать БД из 1С в MySQL Andrushkaaaa PHP 4 10.11.2007 11:02
Как экспортировать данные Малявка Microsoft Office Excel 5 20.10.2007 11:53
Как вытащить данные из Excel в бд dephi, а потом (после работы с данными) сформировать новый файл excel. Геля БД в Delphi 1 10.04.2007 15:11
Как экспортировать модель 3d max в Delphi Alar Общие вопросы Delphi 0 29.10.2006 23:43