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

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

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

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

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

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

11. Ivon 638 12.11.14 16:44 Сейчас в теме
(6) monkbest, Читать эксель без экселя можно и с помощью ADO. И быстрее, и код меньше, и читать можно файлы любых версий.
ARkiller; +1 Ответить
12. StepByStep 3244 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 3244 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 3244 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 3244 14.01.15 10:28 Сейчас в теме
(16) Cyberhawk,
При распаковке должен сформироваться файл styles.xml, в котором описаны используемые форматы.
20. pedchenko32 14.01.15 15:41 Сейчас в теме
Добрый день! Почему, если в файле xlsx 1 лист, возникает ошибка файл не обнаружен ...sheet2.xml? Если создать 2й лист, с таким же содержимым, считывание происходит...
23. StepByStep 3244 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С
Владивосток
зарплата от 80 000 руб. до 120 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

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

Бизнес-аналитик 1С
Москва
зарплата от 140 000 руб. до 200 000 руб.
Полный день

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