![]() |
|
|
![]()
|
|
| EvilProgrammer |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 43 Регистрация: 18.7.2006 Репутация: нет Всего: нет |
Начинающий программист.
Собсно проблема следующая. Необходимо создать отчет и сохранить его в Экселевском файле. Для того, что бы не возникало каких либо проблем и можно было просмотреть данные, которые заносятся в файл, я решил их отображать. Через невероятную кучу Эдитов, каждый из которых соответсвует определенной переменной. Сейчас такой вариант программы, правда еще в незавершенном виде у меня есть и он насчитывает около 90 переменных. Программа довольно таки громоздкая, и если честно приходится каждый раз внимательно проверять соответствие и потом каждое значение отдельно заносить в соответсвующую ячейку. В данном случае я использу ADOConnection и один единственный запрос ADOQuery. У меня родился этот вопрос, к тем кто уже занимался подобными задачами, можно ли как-либо еще отобразить информацию (например у меня была идея с ДБГрид, однако с релазацией пока сложно). Заранее благодарен за помощь. Это сообщение отредактировал(а) EvilProgrammer - 15.6.2007, 11:14 |
|||
|
||||
| Rodman |
|
|||
|
CIO ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 6144 Регистрация: 7.5.2006 Где: Ukraine ⇛ Kyiv ci ty Репутация: 22 Всего: 122 |
можно!!!
|
|||
|
||||
| Sax |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 14.4.2007 Репутация: нет Всего: нет |
Из DRKB функция экспорта в excel
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; |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |