|
Запись булевой переменной в Excel файл | ☑ | ||
---|---|---|---|---|
0
romign1
31.01.12
✎
17:48
|
Добрый день. Возникла такая проблема: надо в экселевский файл в ячейку записывать булевую переменную, но не в формате "ИСТИНА", "ЛОЖЬ", а в виде "true", "false". В общем, этого и не получается :(
Если пытаться записать такими способами: Лист.Range("A1").Value = Формат(Истина, "БЛ=false; БИ=true");
Всё равно в файл пишется "ИСТИНА" :( приходится потом заменой в самом экселе менять, что как-то совсем не интересно. Прошу помощи, не знаю как еще по-другому записать. |
|||
1
Rie
31.01.12
✎
17:50
|
(0) Так тебе строку "true" туда записать надо? Или булево значение?
|
|||
2
mozzga
31.01.12
✎
17:50
|
установите английский ёксел, или пишите как строку а не булево, и вроде есть настройка что показывать если 1 или 0
|
|||
3
manyak
31.01.12
✎
17:50
|
пиши тупо текст true и соотв. текст фыормат ячейке выставляй
|
|||
4
romign1
31.01.12
✎
17:57
|
(1) Булевую переменную записать в текстовом формате вида "true"/"false"
(2)(3) я же привел пример, что при попытке записать строку - срабатывает преобразователь типов и записывается "ИСТИНА". Не думаю, что от экселя будет зависеть записываемое значение, поскольку экселю из 1С передается уже преобразованная строка. |
|||
5
Rie
31.01.12
✎
17:58
|
(4) Лист.Range("A1").Text = ...
|
|||
6
romign1
31.01.12
✎
18:01
|
(5) уже пробовал.
1. Это не перезаписываемое свойство 2. Даже если бы можно было записать — 1С всё равно преобразует строку "true" к значению ИСТИНА, до попытки записать |
|||
7
shuhard
31.01.12
✎
18:03
|
(6) буди мужиком, пищи через ADODB
|
|||
8
Rie
31.01.12
✎
18:03
|
(6) 1С ничего не преобразует. Преобразование идёт уже в Excel.
А что скажет Лист.Range("A1").Formula = "'true"; |
|||
9
romign1
31.01.12
✎
18:18
|
(8) С формулой тоже пробовал, та же фигня. Я тоже думал, что эксель виноват, но всё таки это кажется 1С.
(7) пожалуй, не буду :) |
|||
10
Rie
31.01.12
✎
18:22
|
(9) 1С тут ни при чём. С какого бодуна ей преобразовывать строку во что-то? Она просто передаёт VARIANT, указывая тип и значение. А дальше пусть приемник (то бишь, в данном случае - Excel) разбирается, как его интерпретировать.
|
|||
11
shuhard
31.01.12
✎
18:34
|
(9) а зря
|
|||
12
romign1
31.01.12
✎
18:48
|
(10) И как тогда сказать экселю, чтобы он писал в текстовом формате, а не преобразовывал в булево?
Получилось вывести правильное значение, если вычислять формулой: Лист.Range("A1").Formula = "=""true""";
Но тут не понятно как поведет себя эта формула, когда этот файл будут дальше обрабатывать :( Хотелось бы простое текстовое значение. (11) а я просто не в курсе что это и как с 1С связано :/ |
|||
13
FN
31.01.12
✎
18:50
|
Лист.Range("A1").NumberFormat = "@";
Лист.Range("A1").Value = "true"; |
|||
14
romign1
31.01.12
✎
18:55
|
(13) Ууу!! Работает!! Спасибо огромное :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |