Правила Форума редакция от 22.06.2020 |
|
|
|
|
|
Опции темы | Опции просмотра | Language |
16.10.2010, 23:04 | #1 |
Пользователь
Пол: Регистрация: 13.10.2007
Сообщений: 186
Репутация: 192
|
StringGrid -> Excel
Добрый день!
Подскажите как из StringGrid в Excel перекинуть данные. Гуглил, но чтото не помогает. Кто нибудь может по полочкам рассказать, как и что делать надо. |
Реклама: | Интернет-магазин КНС предлагает hp моноблок 27 - более 50-ти тысяч наименований товаров со склада в Москве | Выгодное предложение в КНС Нева - монитор 34 дюймов - специальные условия для корпоративных клиентов в Санкт-Петербурге. | детские столы | Рекомендуем компьютерную фирму КНС 82RG000TRK - Подарок каждому покупателю! | siemens rlu |
17.10.2010, 09:06 | #2 | |||||||||||||||||||||||
Пользователь
Пол: Регистрация: 26.03.2008
Сообщений: 67
Репутация: 28
|
Re: StringGrid -> Excel
Почитай http://wladm.narod.ru/Borland/excel.html ... Откинь что не нужно... Создай цикл (например "For ...") и выведи свои данные. |
|||||||||||||||||||||||
Эти 2 пользователя(ей) сказали cпасибо за это полезное сообщение: |
17.10.2010, 09:10 | #3 |
Re: StringGrid -> Excel
На самом деле там все довольно просто, советую почитать вот эту статью.
А если подробно, то вот что для этого нужно сделать: 1) Подключить 2 модуля #include <ComObj.hpp> и #include <utilcls.h>; 2) Объявить глобально (можно и локально, например в функции) переменные: Variant vVarApp,vVarBooks,vVarBook,vVarSheets,vVarSheet,vV arCells,vVarCell; 3) Создаем объект vVarApp=CreateOleObject("Excel.Application"). Если нужно сделать Excel видимым, то пишешь такой код vVarApp.OlePropertySet("Visible",true); 4) vVarBooks=vVarApp.OlePropertyGet("Workbooks") - набор рабочих книг. vVarApp.OlePropertySet("SheetsInNewWorkbook",X) - задаем количество листов в книге (вместо X указываем число, например 3 - значит будет 3 листа в книге), vVarBooks.OleProcedure("Add") добавляем созданную книгу. Если нужно добавить еще книгу, то повторяем код. vVarBook=vVarBooks.OlePropertyGet("Item",1) - делаешь текущей 1 книгу или другую, если их несколько. vVarSheet=vVarSheets.OlePropertyGet("Item",1) - устанавливаем 1 лист в качестве текущего. vVarSheet.OlePropertySet("Name","Лист") - тут можно изменить имя созданного листа. Один из этапов завершен. Для того, чтобы перенести данные в Excel нужно создать цикл (while или for) и в нем написать следующий код: vVarCell=vVarSheet.OlePropertyGet("Cells").OleProp ertyGet("Item",x,y) - выбираем ячейку, вместо x и y нужно поставить число, например 1,1 - будет выбрана ячейка A1. xVarCell.OlePropertySet("Value",n) - записываем в выбранную ячейку данные, здесь вместо n ставишь значение из ячейки StringGrid указывая для нее столбец и строку. И так повторяешь для остальных ячеек. Про форматирование писать не буду, посмотришь в статье, там хорошо об этом написано. Чтобы сохранить книгу: xVarSheet.OleProcedure("SaveAs",SaveFile.c_str()) - здесь переменная SaveFile типа AnsiString, которая содержит путь куда сохранить документ. Указывать расширение файла необязательно, тогда будет по-умолчанию (для 2003 это *.xls, 2007 - *.xlsx). Если Excel больше не нужен, то закрываешь его xVarApp.OleProcedure("Quit"). Для удобства советую использовать Visual Basic, т.е. в Excel создаешь документ, потом записываешь макрос и открываешь его код и переводишь на C++. Удачи P.S. Пока набирал сообщение уже опередили Последний раз редактировалось Pagon4eg; 17.10.2010 в 09:15.. Причина: P.S. |
|
Эти 4 пользователя(ей) сказали cпасибо за это полезное сообщение: |
21.07.2011, 15:34 | #4 |
Неактивный пользователь
Пол: Регистрация: 21.07.2011
Сообщений: 4
Репутация: 0
|
Re: StringGrid -> Excel
Пользуйся AdvStringGrid от TMS.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
StringGrid с поддержкой Unicode | zark1982 | Компоненты | 16 | 10.07.2011 01:05 |
Компонент StringGrid для Delphi | PIANOR | Компоненты | 16 | 15.02.2010 19:33 |
VCL для Excel | Embolus | Delphi | 26 | 13.11.2008 22:25 |
Экспорт StringGrid в Word | Lis_ | Borland C++ Builder | 1 | 27.09.2007 15:09 |
|
|