Имя: Пароль:
1C
1С v8
проблема с загрузкой из екселя
0 gamburge
 
29.09.15
15:07
Добрый день.При загрузке данных с екселя загружаю данные
    Телефон1=СокрЛП(Страница.Cells(НомерСтроки,3).text);
в екселе теелфон в виде  067-111-22-33 но попадаются ячейки вот с такими 3,8098E+11 видами.как быть?чтобы пользователь не мучался с переформатированием екселя,открывая а сразу грузил правильно.Телефон1=СокрЛП(Страница.Cells(НомерСтроки,3).value);
в данном случае не кактит
1 Happy Bear
 
29.09.15
15:08
вместо text используй value
2 Happy Bear
 
29.09.15
15:09
почему не катит?
3 Живой Ископаемый
 
29.09.15
15:10
Вместио OLE используй ADO, будет раз в 60-200 быстрее к тому же
4 Fragster
 
гуру
29.09.15
15:11
Страница.Cells(НомерСтроки,3).numberformat="@"
5 gamburge
 
29.09.15
15:12
(1)использовал value так в екселе если стоит формат цифры 5 456 то берет только 5.или использовать value только для номера?
6 НЕА123
 
29.09.15
15:16
Formula
7 Tatitutu
 
29.09.15
15:18
(0) оно может только так отображаться

или иметь уже представление значения

попробуй запусти в VBA

MsgBox ActiveCell.FormulaLocal
MsgBox ActiveCell.FormulaR1C1
MsgBox ActiveCell.FormulaR1C1Local
MsgBox ActiveCell.Text
MsgBox ActiveCell.Value2
MsgBox ActiveCell.Value

все будет бестолку , единственное количество знаков


Text  : "5,64565E+28"            : Variant/String
Value :  5,64564564564564E+28    : Variant/Double

так что совет : правильно формировать выгрузку
8 gamburge
 
29.09.15
15:21
если использовать value то (066) 300-77-92
превращается в 380 663 007 792
неподходит валуе
9 gamburge
 
29.09.15
15:22
(7) выгрузка происходит из админик сайта на престашопе.выгружается в формате csv
10 gamburge
 
29.09.15
15:23
странно почему же выборочно ломает строки а не все
11 Tatitutu
 
29.09.15
15:24
(9) попробуй как текст с разделителями читать (а не EXCEL)
(10) огрначение на количество знаков в ячейки и от ее формата зависит.
12 gamburge
 
29.09.15
15:33
(11)если это ограничение то почему я вижу там такие номера номральные 066-240-42-13 тут гораздо больше символов
13 Fragster
 
гуру
29.09.15
15:36
что, (4) не прокатило?
14 Tatitutu
 
29.09.15
15:41
(12) это все нормально
ты вот эту покажу 3,8098E+11
15 gamburge
 
29.09.15
15:49
(13)не совсм понимаю  Страница.Cells(НомерСтроки,3).numberformat="@"
16 gamburge
 
29.09.15
15:50
(14)380663027793
17 Fragster
 
гуру
29.09.15
16:02
(15) сначала присвоить формат, потом читать .text.
вообще писателей экселя за то, что она делает с .csv надо кастрировать немного.

нормального результата можно добиться только создав новый файл и сделав данные -> из текста.

ну а так - можно посоветовать вставить _второй_ строкой в текст что-то типа ф;ф;ф;........ и потом её игнорировать при импорте
18 gamburge
 
29.09.15
16:17
(17)                Страница.Cells(НомерСтроки,4).numberformat="@";
                Телефон2=СокрЛП(Страница.Cells(НомерСтроки, 4).text);
так?
19 gamburge
 
29.09.15
16:30
3,81E+11   все равно такое выкидывает.а в конце еще спрашивает сохранить ексель файл или нет
20 gamburge
 
29.09.15
16:35
ну что никто не поможет?
21 gamburge
 
29.09.15
16:37
поставил вручную в екселе формат текстовый и вот что показывает ексель 3,80683E+11
22 Fragster
 
гуру
29.09.15
16:38
значит, надо отказаться от экселя и грузить по другому
23 Fragster
 
гуру
29.09.15
16:39
например через текстовый драйвер adodb.
24 Fragster
 
гуру
29.09.15
16:39
но ему все равно может потребоваться добавление второй строки со значениями, сбрасывающими типы колонок в текст
25 gamburge
 
29.09.15
16:48
а вот так сработало                 Страница.Cells(НомерСтроки,4).numberformat="0,00";
                Телефон2=СокрЛП(Страница.Cells(НомерСтроки, 4).text);
выводит 380663027792,00
вот если бы формат дополнительный удалось вывести там без запятой и без нулей.
26 gamburge
 
29.09.15
16:49
только зачем то в конце загрузки ексель прости сохранится.А пользователя это пугает.
27 Fragster
 
гуру
29.09.15
16:50
Excel.Application.DisplayAlerts = false;
28 gamburge
 
29.09.15
17:05
(27)спасибо
29 Сияющий в темноте
 
29.09.15
17:24
чтобы excel считала число строкой перед ним нужно ставить апостроф
если же в числе есть нечисловые символы то это строка априори
числа в excel хранятся как double и имеют не более семнадцати знаков точности
если бы у ВПС были номера счетов то простое открытие их в excel безвозвратно их бы испортило
а csv файлы проще читать построчно и не связываться с офисом,которого может и не быть
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.