|
Считать телефон из эксель Ч.2 | ☑ | ||
---|---|---|---|---|
0
SkillUp
15.04.19
✎
10:28
|
Здр., товарищи есть такая ситуация - https://drive.google.com/open?id=1aFmFn7GV8FYqp3WoYyq6jMefhsuot-4K ,надо считать телефон из эксел, в нормальном виде. Подсказали вместо .text - на Value. Делаю так , но ошибка, и не знаю что делать. Заранее спасибо за помощь...
Ошибка: {ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(54)}: Ошибка при получении значения атрибута контекста (Value) ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Value; по причине: Произошла исключительная ситуация (0x8002000a) Код с ошибкой: Для НомерКолонки = 1 по Таблица.Колонки.Количество() Цикл //заполняем строку значениями ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Value; ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя; НоваяСтрока[ИмяКолонки] = ТекущееЗначение; КонецЦикла; Полностью код: Процедура КнопкаВыполнитьНажатие(Кнопка) //очищаем таблицу и удаляем колонки Таблица.Очистить(); Таблица.Колонки.Очистить(); ЭлементыФормы.Таблица.Колонки.Очистить(); ИмяФайла = ПолеВвода1; // Создание COM-объекта Excel = Новый COMОбъект("Excel.Application"); // Открытие книги Книга = Excel.Workbooks.Open(ПолеВвода1); // Позиционирование на нужном листе Лист = Книга.Worksheets(НомерСтраницы).Name; //Получим количество строк и колонок. //В разных версиях Excel получаются по-разному, поэтому сначала определим версию Excel Версия = Лев(Excel.Version,Найти(Excel.Version,".")-1); Если Версия = "8" тогда ФайлСтрок = Excel.Cells.CurrentRegion.Rows.Count; ФайлКолонок = Макс(Excel.Cells.CurrentRegion.Columns.Count, 13); Иначе ФайлСтрок = Excel.Cells(1,1).SpecialCells(11).Row; ФайлКолонок = Excel.Cells(1,1).SpecialCells(11).Column; Конецесли; //считываем первую строку и генерируем колонки Сч = 1; Пока ЗначениеЗаполнено(Excel.Cells(1, Сч).text) Цикл ИмяКолонки = Excel.Cells(1, Сч); ИмяБезПробелов = СтрЗаменить(Excel.Cells(1, Сч).text," ",""); // убираем из имени колонок пробелы ИмяБезПробелов = СтрЗаменить(ИмяБезПробелов,"-",""); Позиция = Найти(ИмяБезПробелов,"Город"); Если Позиция >0 Тогда ИмяБезПробелов = "Город"; КонецЕсли; Таблица.Колонки.Добавить(ИмяБезПробелов,,ИмяКолонки); НоваяКолонка = ЭлементыФормы.Таблица.Колонки.Добавить(ИмяБезПробелов, ИмяКолонки); НоваяКолонка.Данные = ИмяБезПробелов; Сч = Сч + 1; КонецЦикла; //После формирования колонок считываем тело файла эксель и построчно заносим данные в табличное поле: Для НС = 2 по ФайлСтрок Цикл // НС указываем с какой строки начинать обработку Состояние("Файл "+Строка(ИмяФайла)+": Обрабатывается первый лист "+Строка(Формат(?(ФайлСтрок=0,0,((100*НС)/ФайлСтрок)),"ЧЦ=3; ЧДЦ=0"))+" %"); ОбработкаПрерыванияПользователя(); //указав данный оператор, цикл можно прервать в любой момент нажатие ctrl+break НоваяСтрока = Таблица.Добавить(); Для НомерКолонки = 1 по Таблица.Колонки.Количество() Цикл //заполняем строку значениями ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Value; ИмяКолонки = Таблица.Колонки[НомерКолонки-1].Имя; НоваяСтрока[ИмяКолонки] = ТекущееЗначение; КонецЦикла; КонецЦикла; // Закрытие книги Excel.DisplayAlerts = 0; Excel.Quit(); Excel.DisplayAlerts = 1; КонецПроцедуры |
|||
1
SkillUp
15.04.19
✎
10:46
|
ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Text;
меняю на ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Value; Ни кто не сталкивался с подобным? |
|||
2
vova1122
15.04.19
✎
10:56
|
А чем не устраивает через текст ?
ТекущееЗначение = Excel.Cells(НС, НомерКолонки).Text; или так |
|||
3
vova1122
15.04.19
✎
10:56
|
ТекущееЗначение = ""+Excel.Cells(НС, НомерКолонки).Text;
|
|||
4
SkillUp
15.04.19
✎
11:01
|
(3) 1 мин.
|
|||
5
SkillUp
15.04.19
✎
11:08
|
Если текст, тогда вот так -https://drive.google.com/open?id=1aFmFn7GV8FYqp3WoYyq6jMefhsuot-4K и в 1с попадает!!!
|
|||
6
SkillUp
15.04.19
✎
11:08
|
(3) Не, в 1с нормальное значение не попадает...
|
|||
7
SkillUp
15.04.19
✎
11:09
|
(2) Надо прочитать! Но если считать, тогда ошибка...
|
|||
8
shadow_sw
15.04.19
✎
11:28
|
поменять программно значение формата в ячейке на текст, потом читать как текст
|
|||
9
vova1122
15.04.19
✎
11:37
|
У меня правильно отработало так:
ТекущееЗначение = ""+Excel.Cells(НС, 9).value; ТекущееЗначение = СтрЗаменить(ТекущееЗначение," ",""); |
|||
10
SkillUp
15.04.19
✎
11:45
|
(9) О! 1 мин.
|
|||
11
SkillUp
15.04.19
✎
11:48
|
(9) Шикарно ,СПАСИБО!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |