Здравствуйте.
Извините за наглость, но я так и не смог найти, чтоб при нажатии на кнопку сохранялось, к примеру, 10 TstringGrid’ов в один Exel’евский файл. Если Вы знаете где это, дайте ссылку. Буду весьма признателен.
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
22-07-2006 11:10 | Комментарий к предыдущим ответам
>>>Надо постоянно переписивать Data для нового StringGrid'а?
Нет, нужно написать процедуру, параметрами которой будут StringGrid, Sheet и начальные координаты.
Если StringGrid-ов много, удобно организовать из них массив, тогда можно их выводить по циклу, а не писать 15 обращений к процедуре.
to Shabal.
Sorry за надоедливость. А как мне в эту функцию запихнуть остальные TStringGrid'ы? Надо постоянно переписивать Data для нового StringGrid'а?
Например для 2-ух TStringGrid'ов это будет так:
.....
Data := VarArrayCreate([1, AGrid1.RowCount, 1, AGrid1.ColCount], varVariant);
for i := 0 to AGrid1.ColCount - 1 do
for j := 0 to AGrid1.RowCount - 1 do
Data[j + 1, i + 1] := AGrid1.Cells[i, j];
08-06-2006 01:25 | Комментарий к предыдущим ответам
Все мы дуднуки, если на то пошло...
Для записи в один лист - то же самое что я писал, т.е. все в одном экземпляре XLApp и XLSheet, только теперь тебе нужно вычислять "смещение" для начальной строки при записи таблицы в лист. Т.е.
Смещение = Кол-во_строк_предыдущего_StringGrid + 4
Думаю, тут все понятно - внести из процедуры подключение к XL и выгрузку и оставить только запоолнение массива и запись в лист и вычисление смещения для следующей таблицы.
А если мне надо не на разные листы, а на один лист все вычисления, скажем чтоб отступ от одного TStringGrida до другого был 4 ячейки. Как это сделать. Что надо изменить в этой функции, если можно бы с примерчиком для наглядности, а то я в этих RefToCell дундук!
07-06-2006 09:47 | Комментарий к предыдущим ответам
Может в ней что-то надо подправить?
1. Я бы подправил RefToCell, т.к. если колонок будет больше 26 у вас возникнут проблемы.
2. Потом использовал бы один экземпляр XLApp и книги для всех StringGrid
3. Добавил бы книгу с заданным кол-вом листов http://www.delphikingdom.com/asp/viewitem.asp?catalogid=1273#02
4. При переносе данных указывал бы номер листа, а не все время 1.
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.