0. StepByStep 3245 02.09.14 14:40 Сейчас в теме

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ПостроительDOM

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ПостроительDOM).
Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент", а также изображения.

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

Комментарии
Избранное Подписка Сортировка: Древо
1. StepByStep 3245 02.09.14 14:53 Сейчас в теме
Чтение файла XLSX средствами 1С. ПостоительDOM
Прикрепленные файлы:
ЗагрузитьМетодом_NativeXLSX_ПостроительDOM.txt
RibD; grachev1c; bendarik; chemezov; Pavel_nv; jaroslav.h; kuzyara; +7 Ответить
2. monkbest 103 17.09.14 14:54 Сейчас в теме
Я извиняюсь, а можно в статью написать текст с описанием. А то кроме цитаты из мстителей слов-то и нет:)

По листнингу понять, что рассказывается в статье - сложно. Скомкали все. Дали ссылки на пять статей, в которых та же каша, процитировали. Кроме заголовка ни одного информативного слова нет.
3. StepByStep 3245 17.09.14 17:34 Сейчас в теме
(2) monkbest,
Добавил небольшое описание.
СПАСИБО.
4. arasn 17.09.14 17:12 Сейчас в теме
5. DragEugen 24.09.14 13:54 Сейчас в теме
если бы было с описанием всех функций то вообще бы цены небыло
6. monkbest 103 24.09.14 14:18 Сейчас в теме
так это же получается клевая штука. Читаем ексель без екселя. очень удобно будет для случаев, когда нет возможности создать ОЛЕ оъект екселя в силу его отсутствия или же недостаточности прав

11. Ivon 638 12.11.14 16:44 Сейчас в теме
(6) monkbest, Читать эксель без экселя можно и с помощью ADO. И быстрее, и код меньше, и читать можно файлы любых версий.
ARkiller; +1 Ответить
12. StepByStep 3245 25.11.14 22:18 Сейчас в теме
7. Drizer2000 13 25.09.14 13:29 Сейчас в теме
А этот метод обрабатывает только файлы с расширением XLSX, а обычный xls умеет?
8. awk 692 07.10.14 18:18 Сейчас в теме
(7) Drizer2000, Докумены Microsoft Office с некоторых пор хранятся в формате xml. И сжаты zip.
StepByStep; +1 Ответить
9. awk 692 07.10.14 18:19 Сейчас в теме
(7) Drizer2000, xls хранятся не в zip/xml.
10. hazd 12.10.14 01:07 Сейчас в теме
интересный подход, но как-то все сложно описано, сохраню в блокнот, время будет, разберу.
13. Soikalv 16.12.14 15:02 Сейчас в теме
Интересно. на досуге разберусь.
Как много нам открытий чудных готовит внедрение новых платформ 1с. Вот перехожу на тройку и радуюсь ища новые обработки для тройки.а так хорошо все было настроено в 8.1. и 8.2. Так и не поняла из статьи, эта обработка - то,что я ищу или нет. В 8.2. была типовая внешняя обработка с диска ИТС для загрузки данных из таблиц икселя в любой табличный документ. Целые базы грузили, очень удобно было..
14. StepByStep 3245 17.12.14 15:48 Сейчас в теме
(13) Soikalv,
Обработка, в которой применяется функционал этой статьи: http://infostart.ru/public/120961/
Обработка построена по-другому, если сравнивать ее с обработкой с ИТС.
15. kuzyara 785 26.12.14 05:21 Сейчас в теме
При применении на практике мне нужна была просто ТаблицаЗначений, идентичная натуральной, доработал несколько моментов:
Во-первых, убрал разделитель разрядов во всех числах которые приводятся к строке, по-моему здесь типизация - лишнее.
Во-вторых, убрал первые три колонки: "НомерСтроки", "Сопоставлено", "УровеньГруппировки".
В-третьих, МассивИменКолонокXLSX определяется по первой строке, пришлось написать свою функцию ДесятичныйВНомерКолонки(х):
Функция ДесятичныйВНомерКолонки(Знач НомерКолонки)
	Перем Латиница, ДлинаНомера, Поз, ит;
	Латиница = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";	// 26.
             // 1   5    0    5    0    5
	
	целое = НомерКолонки;
	слово="";
	
	Пока Целое>0 Цикл
		НовЦелое=Цел(Целое/26);
		
		остаток = Целое%26;
		
		Буква = Сред(Латиница, остаток, 1);
		слово = Буква+слово;
		Целое=НовЦелое;
	КонецЦикла;	
	
	Возврат слово;
	
КонецФункции
Показать


В целом метод рабочий, автору большая благодарность.
18. StepByStep 3245 14.01.15 10:25 Сейчас в теме
(15) kuzyara,
Удачного применения.
16. Cyberhawk 112 28.12.14 12:17 Сейчас в теме
Подскажите, пожалуйста, можно ли в вашей "подсистеме" (назвал так прилагаемый к публикации набор процедур и функций) узнавать цвет фона ячейки xlsx-файла? Если да, то в какой процедуре / функции из прилагаемых это можно сделать?
17. kuzyara 785 29.12.14 09:16 Сейчас в теме
(16) Cyberhawk, принципиальной сложности в разборе https://en.wikipedia.org/wiki/Microsoft_Office_XML_formats нет.
19. StepByStep 3245 14.01.15 10:28 Сейчас в теме
(16) Cyberhawk,
При распаковке должен сформироваться файл styles.xml, в котором описаны используемые форматы.
20. pedchenko32 14.01.15 15:41 Сейчас в теме
Добрый день! Почему, если в файле xlsx 1 лист, возникает ошибка файл не обнаружен ...sheet2.xml? Если создать 2й лист, с таким же содержимым, считывание происходит...
23. StepByStep 3245 25.02.15 13:58 Сейчас в теме
(20) pedchenko32, (21) pedchenko32, (22) pedchenko32,
1. "sheet2.xml" - не сталкивался.
2. "ячейка пустая" - ЗначениеЗаполнено(ЗначениеЯчейки).
3. "строки с оформлением" - Конкретно это не интересовало. Если строки пусты - то написать доп процедуру.
21. pedchenko32 14.01.15 17:04 Сейчас в теме
и еще вопрос, как определить в этом случае, что ячейка пустая?
22. pedchenko32 14.01.15 17:22 Сейчас в теме
или как сделать, чтобы строки с оформлением тоже не включались в таблицу значений?
24. Жолтокнижниг 247 17.03.15 12:27 Сейчас в теме
Необходимо поправить загрузку SharedStrings
иногда встречаются подобные конструкции:
<si><r><t>mail@mail.ru</t></r><r><rPr><sz val="10"/><color rgb="FF000000"/><rFont val="Arial"/><family val="2"/><charset val="204"/></rPr><t xml:space="preserve">  </t></r><r><rPr><sz val="10"/><color rgb="FF909090"/><rFont val="Arial"/><family val="2"/><charset val="204"/></rPr><t> </t></r></si>

За счет этого сбивается нумерация.
Если SharedStrings.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда  
МассивSharedStrings.Добавить(Строка);
КонецЕсли;

мое исправление ситуации
25. tyfmyl 21.03.16 14:40 Сейчас в теме
Добавте в параметры функции разрядность округления - Окр(). Excel при чтении данных при выгрузке полей не форматированных представляет некоторые числа в виде бесконечной десятичной дроби с "9" ой на конце.
Из справки известно, что excel хранит числа в 8 байтах. Для округления достаточно 14 цифр разрядов.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии


Руководитель проектов 1С
Санкт-Петербург
Полный день

Бизнес-архитектор 1С, ведущий консультант
Санкт-Петербург
Полный день

Программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день