|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
19.12.2011, 20:51 | #1 |
Пользователь
Регистрация: 05.12.2011
Сообщений: 17
|
Таблицы StringGrid в разные листы Excel
Здравствуйте, подскажите что нужно добавить в данный код, чтобы к таблице sg1 на первом листе книги добавить таблицу sg2 на второй лист. Спасибо!
function SaveAsExcelFile(sg1: TStringGrid; ASheetName, AFileName: string): Boolean; const xlWBATWorksheet = -4167; var XLApp, Sheet, Data: OLEVariant; i, j: Integer; begin // Prepare Data Data := VarArrayCreate([1, sg1.RowCount, 1, sg1.ColCount], varVariant); for i := 0 to sg1.ColCount - 1 do for j := 0 to sg1.RowCount - 1 do Data[j + 1, i + 1] := sg1.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(sg1.RowCount, sg1.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; procedure TForm1.BitBtn6Click(Sender: TObject); begin if SaveAsExcelFile(sg1, 'Âûåçä', 'c:\Èñòîðèÿ\history.xls') then ShowMessage('Îò÷åò ñîõðàíåí â ïàïêó c:\Èñòîðèÿ !'); end; |
19.12.2011, 23:36 | #2 |
Сисадмин
Форумчанин
Регистрация: 28.12.2007
Сообщений: 320
|
Во-первых, оформляйте, пожалуйста, код с помощью тега CODE, чтобы было удобнее читать.
Во-вторых... Можно сделать несколькими способами. Давайте реализуем один из них (я думаю, что самый простой) - это подправим функцию, добавив в нее еще несколько параметров. Объявление функции будет выглядеть так: Код:
Код:
Код:
Код:
Код:
Код:
Код:
|
20.12.2011, 17:23 | #3 |
Пользователь
Регистрация: 05.12.2011
Сообщений: 17
|
Спасибо большое!!!!! Все оч подробно и понятно даже мне Только вот возникла проблема, sg2 сохраняется на первый лист, второй лист остается пустым. Добавила переменную Sheet1, но видимо дело не в этом, что я опустила? И еще можно ли имени файла ексель присвоить значение из Edit'а и ComboBox'а и как это сделать?)
Код:
|
20.12.2011, 21:19 | #4 | ||
Сисадмин
Форумчанин
Регистрация: 28.12.2007
Сообщений: 320
|
Цитата:
Код:
Цитата:
Код:
Код:
Последний раз редактировалось Xardas; 20.12.2011 в 21:23. |
||
21.12.2011, 17:58 | #5 |
Пользователь
Регистрация: 05.12.2011
Сообщений: 17
|
Пасиба!! Все получилось!!!!!!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
добавление данных через DBEdit в разные таблицы | Kamelli | БД в Delphi | 6 | 31.07.2013 00:58 |
Раскрашивание отдельных ячеек StringGrid через разные функции | dubailand | Компоненты Delphi | 7 | 04.09.2011 16:02 |
Из DBEdit в 2 разные таблицы | maxkov | БД в Delphi | 5 | 17.10.2010 14:47 |
Дробление таблицы на разные листы | MaxxVer | Microsoft Office Excel | 9 | 22.03.2010 08:05 |
Разнести информацию на разные листы | asale | Microsoft Office Excel | 3 | 13.06.2007 20:16 |