|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
Доброе время суток All! -- Наткнулся на такую проблему, в C++ делаю экспорт данных в Excel. Все проходит нормально, но не могу применить форматирование числа, надо "числовой, с разделителями разрядов, 2 знака после запятой" Код: plaintext 1. 2.
Что посоветуете сделать? Ибо бухи скоро с потрохами съедят. -- Best regards, Paul ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 01:14 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
Я бы написал так: Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 06:21 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
SnowMan2Я бы написал так: Код: plaintext 1. 2. 3.
Не берет. Такое ощущение, что по барабану ему :( ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 09:16 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
И не возьмёт. Сначала надо ячейку выделить (Range ["СтрокаСтолбец"].Select), а потом говорить Selection.NumberFormat = чего-нибудь. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 17:02 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
HryuckinnenИ не возьмёт. Сначала надо ячейку выделить (Range ["СтрокаСтолбец"].Select), а потом говорить Selection.NumberFormat = чего-нибудь. Насколько я понимаю, вышеприведенный код это и делает. Но Excel в упор не понимает. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 17:15 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
Вышеприведенный код AnsiString temp="#,##0.00"; Variant Range = Sh("Range", Диапозон); Variant Select = Range.OleFunction("Select"); Select.OlePropertySet("NumberFormat", temp.c_str()); по существу делает следующее: Select = Range ["Диапазон"].Select Select.NumberFormat = temp Это основывается на допущении, что Range.Select - это есть функция, которая возвращает выбранный объект. А это не так. Выполни в Визуал Бейсике инструкцию MsgBox Range("A1").Select и увидишь, что происходит (она возвращает true, видимо, это означает, успешно выполнился Select или нет). Надо делать так: Range ["Диапазон"].Select Selection.NumberFormat = temp ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 18:11 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
HryuckinnenВышеприведенный код AnsiString temp="#,##0.00"; Variant Range = Sh("Range", Диапозон); Variant Select = Range.OleFunction("Select"); Select.OlePropertySet("NumberFormat", temp.c_str()); по существу делает следующее: Select = Range ["Диапазон"].Select Select.NumberFormat = temp Это основывается на допущении, что Range.Select - это есть функция, которая возвращает выбранный объект. А это не так. Выполни в Визуал Бейсике инструкцию MsgBox Range("A1").Select и увидишь, что происходит (она возвращает true, видимо, это означает, успешно выполнился Select или нет). К сожалению пишется это все не на Visual Basic, а на C++ Hryuckinnen Надо делать так: Range ["Диапазон"].Select Selection.NumberFormat = temp Простите, я видимо чего то не понимаю, как это будет выглядеть на C++? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 18:16 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
1) Ненужно использовать метод Select и глобальный объект Selection 2) Сначала нужно поменять формат ячейки, потом писать в нее данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 18:20 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
White Owl1) Ненужно использовать метод Select и глобальный объект Selection 2) Сначала нужно поменять формат ячейки, потом писать в нее данные. Делаю сейчас так: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 18:28 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
Хмм, да, дело не в Selection... Два рабочих варианта: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9.
А вот маску "#,##0.00" Ексел почему-то не понимает... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 18:41 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
Paul A. PleshkovДелаю сейчас так: Код: plaintext 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 18:44 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
Огромное спасибо всем! Заработало. Теперь осталось разобраться как изменить высоту строки, если там много данных, но это уже мелочи, хотя, если кто подскажет - буду рад. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 19:38 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
Paul A. PleshkovТеперь осталось разобраться как изменить высоту строки, если там много данных, но это уже мелочи, хотя, если кто подскажет - буду рад.Примерно так: Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 19:48 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
White Owl Paul A. PleshkovТеперь осталось разобраться как изменить высоту строки, если там много данных, но это уже мелочи, хотя, если кто подскажет - буду рад.Примерно так: Код: plaintext
Спасибо. Проверю завтра. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 19:52 |
|
BDS, Excel OLE проблема с форматированием числа в ячейке
|
|||
---|---|---|---|
#18+
Другой вариант (команда Формат->Строка->Автоподбор высоты): Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.01.2007, 19:57 |
|
|
start [/forum/topic.php?fid=57&msg=39929511&tid=2017467]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 163ms |
0 / 0 |