gifts2017

Чтение файлов *.xlsx средствами 1С 8.2 (Управляемые формы) в т.ч. Веб-клиент

Опубликовал Maximilian Alekseevich (1cmax) в раздел Программирование - Практика программирования

Считывание файлов xlsx средствами 1с 8.2
Все те же идеи что и в http://infostart.ru/public/139556/ только для управляемых форм

Внутри архива *.xlsx практический интерес для получения значений ячеек представляют три вида файлов:

1. workbook.xml - содержит описание рабочей книги (количество листов)

2. sharedStrings.xml - содержит строковые значения ячеек всех листов

3. Файлы sheet1.xml...sheetN.xml - значения ячеек конкретного (по номеру, независимо от названия) листа.

Почти все значения внутри файлов sheet1.xml...sheetN.xml представляют собой числа, причем для строчных значений это индекс строки из файла sharedStrings.xml, а для даты - число дней с начала XX века.

Теги   f содержат написание формулы, теги v  - значение ячейки, независимо от того было ли оно "вбито" напрямую, или это результат формулы.

Данная обработка исключительно средствами 1С 8.2 производит распаковку архива *.xlsx и парсинг вышеуказанных файлов.


Изменено:


-реализован интерфейс под управляемые формы.

-протестировано под IE 9

-под chrome расширение для работы с файлам не взлетело.

 http://infostart.ru/public/139556/

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

Наименование Файл Версия Размер Кол. Скачив.
XLSXПарсинг_уф
.epf 9,72Kb
08.07.15
145
.epf 9,72Kb 145 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Антон Лапот (kievanton) 05.07.12 21:56
Спасибо, очень актуальная тема!
"Читаю" файлы по-старинке, через Новый COMОбъект("Excel.Application"), постоянно проблемы - подвисание Экселя в памяти, проблемы при попытке работы в клиент-серверном варианте...
Попробую описанный Вами метод!
2. Владимир Клименко (KliMich) 25.06.13 11:03
Спасибо! Очень пригодилась!

Работает на ура. Единственное, вылетает по ошибке
{Обработка.XLSXПарсинг_УправляемоеПриложение.Форма.Форма.Форма(87)}: Индекс находится за границами массива
ТЗ[НомерСтроки-1][НомерКолонки-1]=Значение;
когда в Экселе первая стока ПУСТАЯ!
3. Сергей Ожерельев (Поручик) 07.09.13 16:00
(0) http://infostart.ru/public/139556/
Чтение файлов *.xlsx средствами 1С 8.2
Публикация удалена

А кто был автор оригинала?
4. Сергей Ожерельев (Поручик) 07.09.13 16:02
У него была такая же для чтения docx. Ищу и не нахожу.
5. Maximilian Alekseevich (1cmax) 07.09.13 16:17
К сожалению не помню.. кто это был.
6. Сергей Ожерельев (Поручик) 09.09.13 01:33
(5) В кэше гугля есть ссылка, но она недоступна.
404. That’s an error.

The requested URL /search?q=cache:yKLJGHzk_q4J:infostart.ru/public/139556/+&cd=1&hl=ru&ct=clnk&gl=ru&client=opera was not found on this server. That’s all we know.
7. Sergey A. (spaminfostart) 05.03.14 15:10
Обрабатывает ли данные с количеством столбцов больше 255?
8. Maximilian Alekseevich (1cmax) 05.03.14 16:04
9. Vlad (KillHunter) 05.03.14 16:20
Есть обработка:
http://servicebook.pro/market-place/chtenie-faylov-xlsx-sredstvami-1s-8-2-upravlyaemye-formy-v-t-ch-veb-klient/

Данная обработка исключительно средствами 1С 8.2 производит распаковку архива *.xlsx и парсинг нижеуказанных файлов.

Внутри архива *.xlsx практический интерес для получения значений ячеек представляют три вида файлов:

1. workbook.xml - содержит описание рабочей книги (количество листов)

2. sharedStrings.xml - содержит строковые значения ячеек всех листов

3. Файлы sheet1.xml...sheetN.xml - значения ячеек конкретного (по номеру, независимо от названия) листа.

Почти все значения внутри файлов sheet1.xml...sheetN.xml представляют собой числа, причем для строчных значений это индекс строки из файла sharedStrings.xml, а для даты - число дней с начала XX века.

Теги f содержат написание формулы, теги v - значение ячейки, независимо от того было ли оно "вбито" напрямую, или это результат формулы.

Попробуйте использовать её!
10. Maximilian Alekseevich (1cmax) 05.03.14 18:30
(9) KillHunter, Этот что ж получается слили мою публикуацию на http://servicebook.pro ???
даже скриншоты не поменяны...
плагиат однако
11. Михаил Русанов (RainyAugust22) 24.12.15 07:05
Способ шустрый, но даты не определяет. Гуглю не могу найти способ преобразовать дату..
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа