Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.10.2009, 15:13
Dis Dis вне форума
Прохожий
 
Регистрация: 14.09.2009
Сообщения: 6
Репутация: 10
По умолчанию Экспорт в exel

Народ помогите найти ошибку. В общем вот код:
Код HTML:
var XL, Cell1, Cell2, ArrayData: Variant; RowCount: integer; BeginCol, BeginRow,i,ColCount:byte; begin // Координаты левого верхнего угла области, куда будем выводить данные BeginCol := 1; BeginRow := 3; RowCount := Table1.RecordCount; //Количество записей в таблице ColCount := 4; //Количество столбцов XL := CreateOleObject('Excel.Application'); XL.Application.EnableEvents := false; XL.WorkBooks.Add; // Добавляем книгу XL.Rows.Rows[2].Font.Bold:=true; XL.Rows.Rows[2].Font.Size:=10; XL.Rows.Rows[2].WrapText := True; XL.Rows.Rows[2].HorizontalAlignment := 3; XL.Rows.Rows[2].VerticalAlignment := 2; XL.Cells[2,1]:= 'Номер';//Формируем шапку таблицы XL.Cells[2,2]:='Фамилия'; XL.Cells[2,3]:='Дата'; XL.Cells[2,4]:='Курс'; XL.Columns.Columns[1].ColumnWidth:=7; XL.Columns.Columns[2].ColumnWidth:=29; XL.Columns.Columns[3].ColumnWidth:=20; XL.Columns.Columns[4].ColumnWidth:=20; ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant); // задаем вариантный массив, который будем заполнять данными Table1.First;//заполняем массив значениями из Table1 for i := 1 to RowCount do begin ArrayData[i,1] := Table1['id']; ArrayData[i,2] := Table1['fam']; ArrayData[i,3] := Table1['date']; ArrayData[i,4] := Table1['kurs']; Table1.Next; end; Cell1 := XL.Cells[BeginRow-1, BeginCol]; // левая верхняя ячейка области в которую будем выводить данные Cell2 := XL.Cells[BeginRow+RowCount-1, BeginCol + ColCount-1];//правая нижняя ячейка области куда будем выводить данные XL.Range[XL.Cells[BeginRow, BeginCol], Cell2].Value := ArrayData; //заполняем книгу нашими данными XL.Range[Cell1, Cell2].Borders.LineStyle := 1; XL.Visible := true;//делаем Excel видимым
Оно впринципе работает, но перебрасывает не все данные из таблицы почему-то, причем из разных таблиц перекидывается разное количество записей. Спасибо
Ответить с цитированием
  #2  
Старый 14.10.2009, 15:29
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Видимо вся беда в этом:
Код:
ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant)
Это вроде одномерный массив из 4-элементов.
Если бы у вас был тип не Variant компилятор ругнулся бы сразу на такое:
Код:
ArrayData[i,1] := Table1['id'];
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 14.10.2009 в 15:37.
Ответить с цитированием
  #3  
Старый 14.10.2009, 15:45
Dis Dis вне форума
Прохожий
 
Регистрация: 14.09.2009
Сообщения: 6
Репутация: 10
По умолчанию

Спасибо, а можно подробнее как исправить, а то я экспорт первый раз пытаюсь сделать чет не соображу никак
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 12:11.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter