Имя: Пароль:
1C
1C 7.7
v7: Определить формат ячейки Excel
, ,
0 Andreyyy
 
12.03.13
13:38
Есть обработка, которая загружает файлы Excel через Йоксель (самого Excel нет на машине).
Как определить "специфичный" формат ячейки без Excel (в Йокселе хотелось бы) как на картинке http://s019.radikal.ru/i621/1303/ea/21d8f75f38a1.jpg
Грузит строку "75", а нужно как в файле "75B".

Через Excel делал так:

Размер=СокрЛП(Строка(вДок.Cells(пер, 7).Value));
   
       ФорматЯчейки=Строка(вДок.Cells(пер, 7).NumberFormat);
       Если СтрДлина(ФорматЯчейки)>=4 Тогда
           ФорматЯчейки=Сред(ФорматЯчейки,СтрДлина(ФорматЯчейки)-1,1);
       Иначе
           ФорматЯчейки="";
       Конецесли;
       
       Если ФорматЯчейки="А" Тогда
           Размер=Размер+"-A";
       ИначеЕсли ФорматЯчейки="В" Тогда
           Размер=Размер+"-B";
       ИначеЕсли ФорматЯчейки="С" Тогда
           Размер=Размер+"-C";
       ИначеЕсли ФорматЯчейки="Д" Тогда
           Размер=Размер+"-D";
       КонецЕсли;
1 cw014
 
12.03.13
13:39
вДок.Cells(пер, 7).NumberFormat чо дает то в итоге?
2 Andreyyy
 
12.03.13
13:43
(1) ФорматЯчейки = "В"
3 Andreyyy
 
12.03.13
13:44
(1) Если обычный формат, то просто "Основной".
4 Andreyyy
 
12.03.13
13:45
(1) вДок.Cells(пер, 7).NumberFormat = "0"В""
5 cw014
 
12.03.13
13:47
(4) Ну тогда как нибудь так:
Ячейка = вДок.Cells(пер, 7);
Значение = СтрЗаменить(Ячейка.NumberFormat,"0",Ячейка.Значение);
Значение = СтрЗаменить(Ячейка.NumberFormat,"""","");
6 cw014
 
12.03.13
13:48
А вообще лучше через RegExp
7 skunk
 
12.03.13
13:55
Cells(пер, 7).Text
8 cw014
 
12.03.13
13:56
(7) О, запомним, а то я методы екселя позабыл совсем
9 skunk
 
12.03.13
13:57
(8)ну в данном случае это проперти
10 Andreyyy
 
12.03.13
14:14
(5)(7) Excel нет на машине !
11 skunk
 
12.03.13
14:15
йоксель его тоже вроде тянет
12 Andreyyy
 
12.03.13
14:33
(7) Работает без извратов, спасибо.
(11) Что-то не найду такого метода, да и вообще как к ячейкам добираться в Йокселе, гружу в таблицу значений так:

Таб = СоздатьОбъект("ТабличныйДокумент");
   Конвертер = СоздатьОбъект("КонвертерExcel");
   Книга = Конвертер.Открыть(ПутьДляФайлаЗагрузки + ФайлЗагрузки);
   Листы = Книга.Листы;
   Лист = Листы.Получить(1);
   
   Если Лист.Тип <> 0 Тогда
       Возврат 0;
   КонецЕсли;
   
   ИмяЛиста = Лист.Имя;
   
   Документ    = Книга.ЗагрузитьЛист(ИмяЛиста);
   Конвертер = СоздатьОбъект ("Йоксель.КонвертерВТаблицуЗначений");
   Конвертер.УстановитьДокумент(Документ);
   Конвертер.ОпределятьСтруктуру    = 0;
   Конвертер.ПроверятьСтруктуру    = 0;
   Конвертер.СтрокДляОпределенияСтруктуры = 15;
   ТЗ = Конвертер.Загрузить();
13 skunk
 
12.03.13
14:35
(12)нет с йокселем я пас
14 Andreyyy
 
12.03.13
14:40
Придется видимо через опеноффис грузить.
15 skunk
 
12.03.13
14:44
(14)а у тебя ексель какого формата?
16 Andreyyy
 
12.03.13
15:59
(15) 2003 вроде присылают.
17 Andreyyy
 
12.03.13
18:13
Получилось через опеноффис, ничего переделывать не пришлось, только подключение. Метод в (7) так же работает.
18 Andreyyy
 
13.03.13
13:14
Help !

(17) Конечно пришлось переделать, методы отличаются.
(7) Кокой подобный метод в ОпенОффисе ?

Опять вопрос по сабжу, но как решить в ОпенОффисе ?
19 Andreyyy
 
13.03.13
13:40
Апну
20 cw014
 
13.03.13
13:48
Статей много по опену. Поищи.
21 Andreyyy
 
13.03.13
13:50
(20) Плохо гуглил значит, ткни носом.
22 Andreyyy
 
13.03.13
14:26
Все работает через getString(), прогнал я.