[OLE] [Excel] Установка формата ячейки
Hello All,
всемогущий и милостивейший :)
Кто работал с Excel через OLE? помогите!
Мне нужно решить проблему для Clarion,
но и любой другой опыт. я надеюсь, поможет
(С55EE(G); WinXP,98; ExcelXP,2000)
1. Объясните вещь, плиз:
Почему
?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"@"'
! это текстовый формат ячейки
работает, а
?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"General"'
или
?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"0.00"'
выдает ошибку:
OLE Automation Error
"Нельзя установить свойство NumberFormat класса Range"
2. Я хочу записать в ячейку дробное число
если делаю просто
?OLE{'Cells(' & i & ',' & j+1 & ').Value'} = YVol[m#,j]
то иногда число преобразуется в дату
вопрос - как отключить?
3. Я хочу записать в ячейку дробное число
?OLE{'Cells(' & i & ',' & j+1 & ').Value'} = YVol[m#,j]
как обеспечить распознавание числа ^^^^^^^^
как дробного числа с DecimalSeparator = "."
и автоматического приведение его к DecimalSeparator,
установленному в системе.
Т.е. чтобы из Clarion в Excel число записывалось именно как
число и именно с тем DecimalSeparator, который установлен в
системе
Вариант (ExcelXP)
?OLE{'Application.DecimalSeparator'} = '"."'
?OLE{'Application.UseSystemSeparators'} = FALSE
Не работает под Excel2000 (ну нет там таких свойств)
Пробую обойти это так:
?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"@"'
?OLE{'Cells(' & i & ',' & j+1 & ').Value'} = YVol[m#,j]
?OLE{'Cells(' & i & ',' & j+1 & ').TextToColumns(DecimalSeparator=".")'}
?OLE{'Cells(' & i & ',' & j+1 & ').NumberFormat'} = '"General"'
но здесь проблема с NumberFormat (см. Выше)
(оставить в том виде что есть (текстовом) нельзя, так как
на его основе не строятся ChartObjects)
Посоветуйте, плиз: как надо правильно записывать в ячейки Excel
дробные числа независимо от настроек системы
СПАСИБО