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

Вниз

Экспорт таблицы из StringGrid в Excel   Найти похожие ветки 

 
Darvin ©   (2007-05-24 16:22) [0]

Здравствуйте.
Может этот вопрос уже много раз обсуждался, но все-таки, как выполнить подобный экспорт? Поделитесь информацией или ссылочкой.


 
umbra ©   (2007-05-24 16:33) [1]

Создаете двумерный вариантный массив (VarArrayCreate), заполняете его значениями ячеек стринггрида, а в эксель всталяете так:

myrange.Value := myvararray


 
Darvin ©   (2007-05-24 16:35) [2]

>umbra ©   (24.05.07 16:33) [1]
А MyRange в Вашем примере - это что такое?


 
umbra ©   (2007-05-24 16:43) [3]

это диапазон ячеек на листе экселя, такого же размера, как массив


 
Darvin ©   (2007-05-24 17:07) [4]

Накопал такой код. Вроде, работает

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;



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
15-1179564050
race1
2007-05-19 12:40
2007.06.17
BATCH


1-1176644486
Fantom348
2007-04-15 17:41
2007.06.17
Unicode FilePath


2-1180444102
Галинка
2007-05-29 17:08
2007.06.17
Панель инструментов "под кнопкой" панели инструментов.


15-1179715558
Slider007
2007-05-21 06:45
2007.06.17
С днем рождения ! 21 мая


15-1179830364
fts@Grafika
2007-05-22 14:39
2007.06.17
нашёл ссылку на реализацию алгоритма Диффи-Хеллмана