|
Как экселину (xls) засунуть в поле табличного документа? | ☑ | ||
---|---|---|---|---|
0
Маленький Вопросик
28.01.13
✎
09:08
|
Есть ли метод? спасибо!
|
|||
1
Бешеная Нога
28.01.13
✎
09:09
|
открыть в экселе, выделить, скопировать, вставить в поле табличного документа
|
|||
2
Бешеная Нога
28.01.13
✎
09:09
|
с вас 2000 руб за консультацию
|
|||
3
pessok
28.01.13
✎
09:12
|
Циклом!
|
|||
4
Галахад
гуру
28.01.13
✎
09:14
|
Прочитать область. Запихать в тз. тз засунуть в поле.
|
|||
5
Маленький Вопросик
28.01.13
✎
09:15
|
(4) вариант)))))
|
|||
6
Маленький Вопросик
28.01.13
✎
09:16
|
как поняли, что задача стоит просто отобразить эксельку
|
|||
7
Маленький Вопросик
28.01.13
✎
09:20
|
(4) слушай, у тебя примерчика нет?
|
|||
8
In123
28.01.13
✎
09:21
|
(7) Халявщик?
|
|||
9
Cube
28.01.13
✎
09:21
|
Один я ничего не понял?
|
|||
10
andreymongol82
28.01.13
✎
09:24
|
держите халявщики
Процедура ЗагрузитьИзExcel(ИмяФайла,ИмяЛиста,Таблица) Экспорт //СтрокаСоединения = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " +СокрЛП(ИмяФайла) +" ;Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"""; //ексель версии до v2007 СтрокаСоединения = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " +СокрЛП(ИмяФайла) +" ;Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;"""; //v2007 и больше Connection = Новый COMОбъект("ADODB.Connection"); Connection.ConnectionString = СтрокаСоединения; Попытка Connection.Open(); Исключение Сообщить(ОписаниеОшибки()); Сообщить ("Проблемы с подключением к Excel" ); Возврат; КонецПопытки; RS = Новый COMОбъект("ADODB.Recordset"); ТекстЗапроса = "SELECT | Лист.* |FROM | ["+ИмяЛиста+"$] as Лист"; попытка RS.Open(ТекстЗапроса, Connection); исключение Сообщить(ОписаниеОшибки()); Сообщить ("Проблемы с выполнением запроса"); Возврат; КонецПопытки; //Создаем таблицу Таблица.Очистить(); КоличествоПолей = RS.Fields.Count; МассивИменКолонок = новый Массив; Для ии = 1 по КоличествоПолей Цикл Field = RS.Fields.Item(ии-1); ИмяКолонки = УдалитьНеправильныеСимволы(СокрЛП(Field.Name)); МассивИменКолонок.Добавить(ИмяКолонки); Таблица.Колонки.Добавить(ИмяКолонки, ,Field.Name); КонецЦикла; Таблица.Колонки.Добавить("ПорядковыйНомерДаДаДа"); //Заполним строками иии = 1; Пока RS.EOF()=0 Цикл НоваяСтрока = Таблица.Добавить(); иии = иии + 1; Для ии = 1 по КоличествоПолей Цикл Field = RS.Fields.Item(ии-1); //ИмяКолонки = СтрЗаменить(СокрЛП(Field.Name)," ",""); НоваяСтрока[МассивИменКолонок[ии-1]]=СокрЛП(Field.Value); НоваяСтрока.ПорядковыйНомерДаДаДа = иии; КонецЦикла; RS.MoveNext(); КонецЦикла; RS.Close(); Connection.Close(); КонецПроцедуры Ну а дальше разбираем ТЗ и вывводим в Табличный документ. Удалить неправильные символы - Заменяем всякие длинные пробелы, запятые, кавычки на "_" |
|||
11
Плот
28.01.13
✎
09:24
|
(4) Начиная с (4) я тоже ниче не понял.
|
|||
12
In123
28.01.13
✎
09:26
|
(10) Зачем такие сложности?
|
|||
13
Маленький Вопросик
28.01.13
✎
09:27
|
(10) сейчас посмотрим)))
(12) предложи попроще ))) |
|||
14
pessok
28.01.13
✎
09:27
|
(10) читать эксель через ADODB... Право, я даже и не знаю - зачем
|
|||
15
Галахад
гуру
28.01.13
✎
09:27
|
Если ТЗ = Неопределено Тогда
ТЗ = Новый ТаблицаЗначений; Для Счетчик = 1 По ВсегоКолонок Цикл ТЗ.Колонки.Добавить("Колонка"+Счетчик, Новый ОписаниеТипов("Строка")); КонецЦикла; КонецЕсли; Для Счетчик = НомерПервойСтроки По ВсегоСтрок Цикл НоваяСтрока = ТЗ.Добавить(); КонецЦикла; Область = ЛистЭксель.Range(ЛистЭксель.Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Cells(ВсегоСтрок,ВсегоКолонок)); Данные = Область.Value.Выгрузить(); Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; |
|||
16
andreymongol82
28.01.13
✎
09:28
|
(14) Через адо быстрее чем просто по оле
|
|||
17
Бешеная Нога
28.01.13
✎
09:29
|
Загрузка из экселя запросом. закладка
|
|||
18
andreymongol82
28.01.13
✎
09:32
|
(17) В смысле?
|
|||
19
Маленький Вопросик
28.01.13
✎
09:32
|
(17) форматирование ячеек тоже запросом делать?
|
|||
20
Маленький Вопросик
28.01.13
✎
09:33
|
нужно посмотреь экселину, совершенно неопределенного содержимого
|
|||
21
Бешеная Нога
28.01.13
✎
09:33
|
(18) это закладка, чтобы потом поиском найти :)
|
|||
22
Cube
28.01.13
✎
09:33
|
(0) Блин, да скажи ты нормально - че те нада-то?)))
|
|||
23
andreymongol82
28.01.13
✎
09:35
|
(21) Тогда лучше вот здесь почитай
http://www.obrabotki.com/tag/1s-excel/ |
|||
24
Бешеная Нога
28.01.13
✎
09:36
|
(23) спс. неплохая инфа
|
|||
25
Маленький Вопросик
28.01.13
✎
09:46
|
(22) см (6)
|
|||
26
Маленький Вопросик
28.01.13
✎
09:58
|
Процедура ПосмотретьПрайсНажатие(Элемент)
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1; ТабДок.Очистить(); ТабДок.АвтоМасштаб = Истина; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ЛистЭксель = ПолучитьCOMОбъект(ЭтаФорма.ПутьКФайлуПоступлений); ВсегоСтрок = ЛистЭксель.Sheets(1).Cells.SpecialCells(11).Row; ВсегоКолонок = ЛистЭксель.Sheets(1).Cells.SpecialCells(11).Column; НомерПервойСтроки=1; НомерПервойКолонки=1; Область = ЛистЭксель.Sheets(1).Range(ЛистЭксель.Sheets(1).Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Sheets(1).Cells(ВсегоСтрок,ВсегоКолонок)); Данные = Область.Value.Выгрузить(); Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТабДок.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; ТабДок.Показать(); КонецПроцедуры что-то не получается... |
|||
27
Cube
28.01.13
✎
09:59
|
(25) Да ну тебя, разбирайся без меня)))
|
|||
28
pessok
28.01.13
✎
10:01
|
Для Счетчик = 0 По ВсегоКолонок-1 Цикл
ТабДок.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; ШТО?! |
|||
29
vicof
28.01.13
✎
10:02
|
A ActiveX-объекты запретили? Мож и не нужен табличный документ
|
|||
30
Галахад
гуру
28.01.13
✎
10:11
|
(26) Конечно не получается. Может код сначала почитать, а потом уже переписывать.
|
|||
31
pessok
28.01.13
✎
10:18
|
||||
32
Маленький Вопросик
28.01.13
✎
11:17
|
(28) а как область сразу передать?
|
|||
33
Маленький Вопросик
28.01.13
✎
11:27
|
Процедура ПосмотретьПрайсНажатие(Элемент)
ТабДок = ЭлементыФормы.ПолеТабличногоДокумента1; ТабДок.Очистить(); ТабДок.АвтоМасштаб = Истина; ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ЛистЭксель = ПолучитьCOMОбъект(ЭтаФорма.ПутьКФайлуПоступлений); ВсегоСтрок = ЛистЭксель.Sheets(1).Cells.SpecialCells(11).Row; ВсегоКолонок = ЛистЭксель.Sheets(1).Cells.SpecialCells(11).Column; НомерПервойСтроки=1; НомерПервойКолонки=1; Область = ЛистЭксель.Sheets(1).Range(ЛистЭксель.Sheets(1).Cells(НомерПервойСтроки,НомерПервойКолонки), ЛистЭксель.Sheets(1).Cells(ВсегоСтрок,ВсегоКолонок)); ТЗ = Новый ТаблицаЗначений; Для Счетчик = 1 По ВсегоКолонок Цикл ТЗ.Колонки.Добавить("Колонка"+Счетчик, Новый ОписаниеТипов("Строка")); КонецЦикла; Для Счетчик = НомерПервойСтроки По ВсегоСтрок Цикл НоваяСтрока = ТЗ.Добавить(); КонецЦикла; Данные = Область.Value.Выгрузить(); Для Счетчик = 0 По ВсегоКолонок-1 Цикл ТЗ.ЗагрузитьКолонку(Данные[Счетчик], Счетчик); КонецЦикла; ТабДок.Данные = ТЗ; КонецПроцедуры |
|||
34
Маленький Вопросик
28.01.13
✎
11:27
|
(33) еще они нерабочий вариант(((
|
|||
35
Маленький Вопросик
28.01.13
✎
11:35
|
люди, ну не хочется думать. подсказывайте, пожалуйста!
|
|||
36
Галахад
гуру
28.01.13
✎
11:42
|
(35) На каком этапе не работает?
|
|||
37
pessok
28.01.13
✎
11:46
|
ТабДок.Данные = ТЗ;
прелестно... |
|||
38
pessok
28.01.13
✎
11:47
|
(35) если не хочется думать - меняй профессию. для начала - посмотри как заполняется ТабДок из ТЗ (считай, что результат запроса, только вместо Следующий() - Для Каждого) в типовых отчетах
|
|||
39
Маленький Вопросик
28.01.13
✎
11:48
|
(36) на этапе отображения в ПолеТабличногоДокумента. синтаксиса я не знаю
|
|||
40
pessok
28.01.13
✎
11:49
|
(39) синтаксис продаст ДенисЧ
посмотри типовые отчеты, еще раз тебе говорю |
|||
41
Галахад
гуру
28.01.13
✎
11:51
|
Посмотри есть чего в ТЗ или нет:
Построитель = Новый ПостроительОтчета(); Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ); Построитель.Вывести(); |
|||
42
andreymongol82
28.01.13
✎
11:53
|
(35) От оно что, что-то много народу нонче думать не хочет...
|
|||
43
Маленький Вопросик
28.01.13
✎
11:59
|
(41) судя по отладчику - ТЗ содержит всю загруженную информацию из Экселины
|
|||
44
Маленький Вопросик
28.01.13
✎
12:00
|
+(43) построитель все это также отображает
|
|||
45
Галахад
гуру
28.01.13
✎
12:05
|
Построитель = Новый ПостроительОтчета();
Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ); Построитель.Вывести(ТабДок); |
|||
46
FN
28.01.13
✎
12:06
|
Если просто показать, то бери DSOFramer
|
|||
47
Маленький Вопросик
28.01.13
✎
12:12
|
(45) хорошо, а как сохранить форматирование текста?
|
|||
48
Галахад
гуру
28.01.13
✎
12:14
|
(47) Из способа чтения области - никак.
|
|||
49
Маленький Вопросик
28.01.13
✎
12:16
|
(48) т.е. метода простого отображения эксельки нету выходит, надо обязательно через ТЗ перенос делать?
|
|||
50
pessok
28.01.13
✎
12:37
|
(49) если просто отобразить, то (29)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |