Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение StringGrid в Excel, Как сохранить StringGrid в файле Excel?? 
:(
    Опции темы
DoNUzi
  Дата 7.6.2010, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.6.2010

Репутация: нет
Всего: нет



У меня есть заполненная таблица StringGrid с фиксированным количеством строк и столбцов...
Как вывести ее на печать разобрался...
А вот как сохранить таблицу в файле Excel не знаю((((
Похожую тему видел...но сколько не пробовал , не крутил..так и не получилось((((
Я правильно понимаю, что версия Mic.Office не влияет?????






Это сообщение отредактировал(а) DoNUzi - 7.6.2010, 02:17
PM MAIL   Вверх
Данкинг
Дата 7.6.2010, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(DoNUzi @  7.6.2010,  02:13 Найти цитируемый пост)
Exel 

Что такое "Exel"?
Цитата(DoNUzi @  7.6.2010,  02:13 Найти цитируемый пост)
Я правильно понимаю, что версия Mic.Office не влияет?????

На что?

В общем, ищи по форуму: примеров работы с xls было и есть множество.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
DoNUzi
Дата 7.6.2010, 02:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.6.2010

Репутация: нет
Всего: нет



Я видел топики этого вопроса для Delphi...но для C++Builder не нашел
Delphi в Builder переводить не умею((
PM MAIL   Вверх
Usper
Дата 7.6.2010, 07:58 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 13.4.2007

Репутация: 15
Всего: 15



Значит плохо искал, они точно есть, вот пример работы с Excel`ем для начала:
Код

#include  <ComObj.hpp>
...
void Foo ()
{
    Variant App, Books, Book, Sheets, Sheet, Cells, Cell;
    try
    {
        App=CreateOleObject("Excel.Application");
    }
    catch (...)
    {
        Application->MessageBoxA("Не могу запустить сервер Microsoft Excel. Продолжение невозможно.",
            "Ошибка", MB_ICONERROR);
        return;
    }
    App.OlePropertySet("Visible",true);  //делаем Excel видимым
    Books=App.OlePropertyGet("Workbooks");
    App.OlePropertySet("SheetsInNewWorkbook",3); //создаём 3 листа в книге
    Books.OleProcedure("Add");
    Book=Books.OlePropertyGet("Item",1);
    Sheets=Book.OlePropertyGet("Worksheets");
    Sheet=Sheets.OlePropertyGet("Item",1);  //ссылка на первый лист в книге
    Sheet.OleProcedure("Activate");
    Cells=Sheet.OlePropertyGet("Cells");
    Cell=Cells.OlePropertyGet("Item",10,5); //выбираем ячейку E10...
    Cell.OlePropertySet("Value","Текст однака");  //...и пишем туда что-нибудь
}


А вот информация для изучения для продолжения: http://wladm.narod.ru/Borland/excel.html#4


--------------------
На посохе волшебном нехилый набалдашник, большой такой, огромный, нехилый набалдашник.
PM MAIL   Вверх
DoNUzi
Дата 7.6.2010, 10:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.6.2010

Репутация: нет
Всего: нет



Usper, Большое спасибо!!!! smile 
Искал плохо не потому что ленивый...учусь в военке, время на интернет ограниченно(((
PM MAIL   Вверх
DoNUzi
  Дата 8.6.2010, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.6.2010

Репутация: нет
Всего: нет



А как задать сохранение значения из ячейки StringGrid??
Код

String a;
a=StringGrid1->Cells[10][5];
Cell=Cells.OlePropertyGet("Item",10,5);
Cell.OlePropertySet("Value", a);

во время выполнения выводиться сообщение об ошибке:
Project 1.exe raised exception class EOleSysError with message
'Неверный тип переменной'. Process stopped. Use Step or Run to continue.
На месте "а" переменная какого типа  должна быть???
PM MAIL   Вверх
Данкинг
Дата 8.6.2010, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(DoNUzi @  8.6.2010,  10:47 Найти цитируемый пост)
На месте "а" переменная какого типа  должна быть??? 

Ставь Variant- не ошибёшься. smile

Добавлено через 1 минуту и 59 секунд
А вообще, неплохо бы тип ячейки Excel принудительно указать.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
DoNUzi
Дата 8.6.2010, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.6.2010

Репутация: нет
Всего: нет



проблему решил таким способом...работает))) smile 
Код

 for (int i=0; i <=StringGrid->RowCount ; i++)
  { for (int j=0; j<=StringGrid->ColCount; j++)
   {
    a=table2->Cells[j][i];
    vVarCell= vVarSheet.OlePropertyGet("Cells").
            OlePropertyGet("Item",i+1,j+1);

    vVarCell.OlePropertySet("Value", a.c_str());
   }
  }


PM MAIL   Вверх
lyucean
  Дата 10.6.2010, 10:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



Данный метод подходит только для маленьких БД ..например экспорт 7000 строк по 6 ячеек уже будет занимать неприличное время.
 
PM MAIL   Вверх
DoNUzi
  Дата 10.6.2010, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 4.6.2010

Репутация: нет
Всего: нет



Ну да...есть такое дело((((
А другие варианты есть???
 smile 
PM MAIL   Вверх
lyucean
  Дата 10.6.2010, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 3.6.2010

Репутация: нет
Всего: нет



Цитата(DoNUzi @ 10.6.2010,  11:17)
Ну да...есть такое дело((((
А другие варианты есть???
 smile

как найду, так сразу ..
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0782 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.