![]() |
|
|
![]()
|
|
| Knorkator |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.11.2006 Репутация: нет Всего: нет |
Всем привет.
Запутался с типом Variant. Вопрос. Как в C++ Builder занести данные из DBgrid в котором хранится таблица из ADOTable, в Excel? Средствами Delphi все делается очень просто, в билдере не могу разобраться. Всем откликнувшимся: Заранее большое спасибо! |
|||
|
||||
| Knorkator |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 26.11.2006 Репутация: нет Всего: нет |
Нашел на просторах рунета, неизвестное авторство, прекрасно работает. |
|||
|
||||
| Пепс |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.1.2012 Репутация: нет Всего: нет |
возможно и прекрасно работает в 6-ом билдере, а в новом - хрен в сметане. разные кодировки ansi и unicode. как поправить этот код чтоб в Embarcadero 15 работало?
сам же и отвечу - везде где стоит Ansistring меняем на Unicodestring, и перед тесктами ставим L (например, L"Невозможно открыть Microsoft Excel.") еще здесь отредактировал
на
и еще t_str поменял на w_str Это сообщение отредактировал(а) Пепс - 24.10.2012, 09:05 |
||||
|
|||||
| Пепс |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.1.2012 Репутация: нет Всего: нет |
эти процедуры запускают процесс excel.exe но не закрывают. кто-нить знает как его (процесс) грохнуть по завершению?
|
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| Пепс |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.1.2012 Репутация: нет Всего: нет |
выгружаю через вышеописанные функции. Проблема: в эксел попадают "урезанные" данные, например в DBGrid значение ячейки 591145001, в экселе эта ячейка имеет значение 59114.
пробовал менять формат вот здесь:
вместо @ пробовал как число, и пустые кавычки ставлял - результат тот же. если я все правильно понимаю, формат данных в DBGrid задается здесь
т.е. AsString. Почему все же эксел "отбрасывает" часть данных? Как исправить? |
||||
|
|||||
| xvr |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Excel понимает тип данных по их (данных) внешнему виду. У вас данные выглядят как число - он их и делает числом Это формат показа, на содержимое ячейки он не влияет. Скажите Excel'у, что у вас текст - добавьте апостроф перед числом:
|
||||
|
|||||
| Пепс |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.1.2012 Репутация: нет Всего: нет |
сделал как вы предложили, вываливает ошибку [BCC32 Error] Unit4.cpp(156): E2015 Ambiguity between '_fastcall System::+(int,const System::Currency &) at c:\program files\embarcadero\rad studio\8.0\include\windows\rtl\syscurr.h:178' and '_fastcall System::+(int,const System::Variant &) at c:\program files\embarcadero\rad studio\8.0\include\windows\rtl\sysvari.h:3497' Full parser context Unit4.cpp(142): parsing: int f4_ExcelSend(int,int,int,System::UnicodeString,bool) и [BCC32 Error] Unit4.cpp(156): E2285 Could not find a match for 'Variant::OlePropertySet(const char *,undefined)' Full parser context Unit4.cpp(142): parsing: int f4_ExcelSend(int,int,int,UnicodeString,bool) указывая на данную строку |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Ну тогда сделайте так
Да, Str у вас надеюсь типа String ? |
|||
|
||||
| Пепс |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.1.2012 Репутация: нет Всего: нет |
так я уже тоже делал... Str - тип Unicodestring |
||||
|
|||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| Пепс |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.1.2012 Репутация: нет Всего: нет |
||||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
||||
|
||||
| Пепс |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 16 Регистрация: 13.1.2012 Репутация: нет Всего: нет |
обрезанные прикрепил скрин как это выглдит в проге Добавлено через 12 минут и 2 секунды блин, .xls нельзя сюда загрузить, но вот так это выглядит. в строке формул точно так же 19.10 59021 5904 460072 19.10 59021 5904 460072 19.10 59021 5904 460072 19.10 59021 5904 460072 19.10 59021 5904 460072 Это сообщение отредактировал(а) Пепс - 26.10.2012, 12:29 Присоединённый файл ( Кол-во скачиваний: 6 )
Новый_рисунок.png 18,08 Kb |
|||
|
||||
| xvr |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Настолько оно не должно обрезать. Зазипуйте xls и приатачте сюда
|
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |