gifts2017

Конвертирование листов Excel в табличный документ формата mxl 1С:Предприятия 8 с сохранением форматирования и возможностью корректировки размеров ячеек (XLS -> MXL)

Опубликовал Алекс Советский (copybases) в раздел Обмен - Загрузка и выгрузка в Excel

Обработка преобразует лист Microsoft Excel  в табличный документ формата mxl 1С:Предприятия 8 с переносом текста ячеек и максимально возможным сохранением:
- формата, выравнивания и признаков переноса текста в ячейках;
- обрамления ячеек и признаков их объединения.

Также существует возможность ввода коэффициентов ширины и высоты ячеек, что позволяет максимально точно подобрать их размер.
Существует возможность отдельного включения опций переноса, что позволяет, например, переносить только бланки табличных документов без  находящегося в них текста.
Требуется наличие установленного Microsoft Excel.
Опубликовано в формате 8.1. Для использования с 8.2 потребуется конвертация.

Скачать файлы

Наименование Файл Версия Размер
Обработка для конвертирования листов Excel в табличный документ mxl 1С V8 326
.epf 9,68Kb
15.10.11
326
.epf 9,68Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
0. Алекс Советский (copybases) 15.10.11 16:30
Обработка преобразует лист Microsoft Excel в табличный документ формата mxl 1С:Предприятия 8 с переносом текста ячеек и максимально возможным сохранением:
- формата, выравнивания и признаков переноса текста в ячейках;
- обрамления ячеек и признаков их объединения.

Перейти к публикации

1. Рус Ф (RuFa) 15.10.11 16:30
Спасибо за обработку. Понравилась. Переносит довольно сложные таблицы. Правда, у меня у одной таблицы правый край не отформатировал. Возможно, таблица большая. Не сразу понял, какой коэффициент ширины и высоты ячеек задавать.
2. Дмитрий Бурлаков (mystos) 17.10.11 12:28
Шикарная вещь! Очень часто пользовался подобной обработкой для 7.7. Теперь будет возможность использовать этот механизм и для восьмерки. Огромное спасибо!
3. Владимир Насыров (Spacer) 17.10.11 12:45
mystos пишет:

Шикарная вещь! Очень часто пользовался подобной обработкой для 7.7. Теперь будет возможность использовать этот механизм и для восьмерки. Огромное спасибо!
(2) mystos,
Ну, для восьмерки можно было пользоваться тем же механизмом что и для семерки.
Главное чтобы семерка была установлена.
Копи-паст табличных документов между семеркой и восьмеркой работает.:)
А вообще вещь конечно хорошая.
4. Алексей . (mamanelli) 17.10.11 15:11
Недавно намучился рисовать бумажку :) Вот сейчас постну, заработаю инфокопеечку и скачаю :)
Конечно плюс поставлю.
(2)(3) А про копи-паст мне и не подумалось )))
5. arjunasoft arjunasoft (arjunasoft) 17.10.11 20:16
хотелось бы попробовать, иногда требуется такая штука.
7. Еле Елешкина (Еле) 18.10.11 12:37
когда нибудь эта обработка пригодится. Спасибо вам за нее
8. Андрей Акулов (DrAku1a) 19.10.11 04:28
Хорошая вещь. Раньше пользовался аналогичной под 7.7, (файл сохранял в mxl и открывал в 8-ке) а переписать на 8.x было лень не было времени. Теперь буду пользоваться Вашей.
9. Jon bazcom (bazcom) 19.10.11 08:53
Спасибо за обработку, посмотрю как работает, авось пригодится! :)
10. Александр Иванов (dkprim) 19.10.11 15:21
хоть вещь и не уникальная в своем классе, но полезная :) автору спасибо :)
12. mikhailovaew (mikhailovaew) 20.10.11 14:49
Спасибо! по опыту: один из наиболее трудоемких этапов написания печатных форм по образцу в экселе - это рисование таблицы...
13. Саўка Збянтэжаны (Збянтэжаны Саўка) 26.10.11 14:21
Хорошо!
Но надо бы добавить еще выбор листа из книги.
Посмотри как здесь "Загрузка из Эксель-таблиц (вер.1).":
http://infostart.ru/public/95360/

Да и еще поставить
Эксель.DisplayAlerts = Ложь;
чтобы не было лишних вопросов при закрытии экселя.

Ну вроде что-то типа вот так:
Прикрепленные файлы:
14. Алекс Советский (copybases) 27.10.11 10:24
Збянтэжаны Саўка пишет:
Хорошо!
Но надо бы добавить еще выбор листа из книги.
Посмотри как здесь "Загрузка из Эксель-таблиц (вер.1).":
http://infostart.ru/public/95360/

Да и еще поставить
Эксель.DisplayAlerts = Ложь;
чтобы не было лишних вопросов при закрытии экселя.

Да, это всё правильно, а ещё можно дописать перенос цвета и заливки и многое другое, но, честно говоря, обработка была написана полтора года назад из-за наличия вечерами в гостинице (командировка) уймы свободного времени и из-за лени (т.к. нужно было создать уйму печатных форм, а большинство из них было сделано в Экселе.)До использования конвертера в "семёрку" и последующего копи-паста не додумался:(. А сейчас нет ни времени, ни потребности обработку совершенствовать, так что новых версий, скорее всего, не будет. Здесь вам, коллеги, при желании можно найти большое поле для экспериментов и добавить то, чего не хватает - код открыт...
Благодарен всем за отзывы и замечания.
15. Саўка Збянтэжаны (Збянтэжаны Саўка) 27.10.11 16:47
(14) copybases, Да будет Вам обмжаться, я просто подумал что обработка будет Вами развиваться дальше ну и по доброте душевной решил подкинуть пароу советов :)
Спасибо за разработку.
16. Алекс Советский (copybases) 27.10.11 22:04
(15) Збянтэжаны Саўка,
:) Да я не обижаюсь совсем, я просто пояснил, что развитие обработки не планирую - для меня она свою задачу выполнила, а если кто улучшит и даже выложит её сюда - я не против - сам потом скачаю и буду пользоваться
;)
17. Oksana Subbotina (OksanaSub) 31.10.11 11:14
Спасибо большое, перед НГ много баз придется переводить на 1с8, многие ПФ переработаны в Excel, но отложены для написания в 1с8, понадобиться.
18. Иван Иванов (Stepping1C) 08.11.11 22:01
Спасибо за обработку.
Попробуем - посмотрим.
19. Андрей Григорьев (Borisych) 08.11.11 23:13
аналоги есть и на этом же ресурсе
20. Наталия (newa) 10.11.11 15:37
Спасибо, давно хотелось иметь что-то похожее, чтобы сэкономить время на рисование форм в 1с.
21. StronG-X (Dethmond) 13.11.11 10:57
Спасибо, что поделились обработкой, реально нужная вещь. Огромное количество времени будет сэкономлено)))
22. igor sarafanov (ms200999) 14.11.11 15:45
23. Николай (nikgol2410) 14.11.11 17:03
Благодарю за работу.
Плюс.
26. Вячеслав Петрович (kozlovvp) 04.02.12 12:31
Не плохо было бы добавить обработку ожидания прерывания пользователем
28. Леван Иремадзе (IRLes) 29.01.13 14:21
Спасибо! Понравилась разработка, но цвет фона не переносится. Доработал обработку немного под себя. И так, что же я сделал:
1. Добавил функцию
Функция РГБ(ЦветRGB)
	Перем Результат;
	Результат = Новый Массив();
	Red 	= ЦветRGB%256;
	Green 	= (Цел(ЦветRGB/256))%256;
	Blue 	= (Цел(ЦветRGB/65535))%256;
	Возврат Новый Цвет(Red, Green, Blue);	
КонецФункции
...Показать Скрыть

2. В процедуру КнопкаВыполнитьНажатие внес изменения
Font = ЯчЭксель.Font;
Яч1С.Шрифт = Новый Шрифт(Font.Name, Font.Size,Font.Bold, Font.Italic, (Font.Underline<>-4142),Font.StrikeThrough); 
Яч1С.Текст = ЯчЭксель.Value;

Добавлено:
Яч1С.ЦветТекста = РГБ(Font.Color);


Добавил ниже этого:
			Яч1С.РазмещениеТекста			= ?(ЯчЭксель.WrapText,ТипРазмещенияТекстаТабличногоДокумента.Переносить, //переносить по словам
			ТипРазмещенияТекстаТабличногоДокумента.Авто);


Вот это

ЦветФона = ЯчЭксель.Interior.Color;
Если ЦветФона <> 16777215 Тогда
   Яч1С.ЦветФона = РГБ(ЦветФона);
КонецЕсли;


Еще добавил отступ и ориентацию текста:

Яч1С.Отступ = ЯчЭксель.IndentLevel; // отступ
Если ЯчЭксель.Orientation <> -4128 Тогда // угол текста
	Яч1С.ОриентацияТекста = ЯчЭксель.Orientation;
КонецЕсли;
Если ЯчЭксель.HorizontalAlignment = -4131 Тогда
	Яч1С.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Лево;
ИначеЕсли ЯчЭксель.HorizontalAlignment = -4108 Тогда
	Яч1С.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
ИначеЕсли ЯчЭксель.HorizontalAlignment = -4152 Тогда
	Яч1С.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Право;
ИначеЕсли ЯчЭксель.HorizontalAlignment = 5 Тогда 
	Яч1С.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Авто;
ИначеЕсли ЯчЭксель.HorizontalAlignment = -4130 Тогда 
	Яч1С.ГоризонтальноеПоложение = ГоризонтальноеПоложение.ПоШирине;
ИначеЕсли ЯчЭксель.HorizontalAlignment = 7 Тогда 
	Яч1С.ПоВыделеннымКолонкам = Истина;
ИначеЕсли ЯчЭксель.HorizontalAlignment = -4117 Тогда 
	Яч1С.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Авто; 
КонецЕсли;
Если ЯчЭксель.VerticalAlignment = -4160 Тогда 
	Яч1С.ВертикальноеПоложение = ВертикальноеПоложение.Верх;
ИначеЕсли ЯчЭксель.VerticalAlignment = -4108 Тогда 
	Яч1С.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
ИначеЕсли ЯчЭксель.VerticalAlignment = -4107 Тогда 
	Яч1С.ВертикальноеПоложение = ВертикальноеПоложение.Низ;
ИначеЕсли ЯчЭксель.VerticalAlignment = -4130 Тогда 
	Яч1С.ВертикальноеПоложение = ВертикальноеПоложение.Низ; 
ИначеЕсли ЯчЭксель.VerticalAlignment = -4117 Тогда 
	Яч1С.ВертикальноеПоложение = ВертикальноеПоложение.Низ; 
КонецЕсли;
...Показать Скрыть
29. Алекс Советский (copybases) 10.02.13 22:01
(28) IRLes, Спасибо Вам и за положительный отзыв и за то, что поделились подробностями столь полезной доработки.