Чтение файлов *.xlsx средствами 1С 8.2

Публикация № 139556

Разработка - Обмен данными 1С - Загрузка и выгрузка в Excel

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

Внутри архива *.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 и парсинг вышеуказанных файлов.

 

14.06.12

Заодно уж добавил и docxreader

134

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

Наименование Файл Версия Размер
xlsx-reader
.epf 8,79Kb
15.09.14
963
.epf 8,79Kb 963 Скачать бесплатно
DOCX Reader.epf
.epf 6,87Kb
14.06.12
299
.epf 6,87Kb 299 Скачать бесплатно

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. anton.fly7 147 13.06.12 11:32 Сейчас в теме
2. Abadonna 3833 13.06.12 11:38 Сейчас в теме
(1) anton.fly7,
формулы без проблем, только я не посчитал нужным их сами выводить, всё равно ж, в основном, значения нужны.

<c r="B4">
<f>SUM(B1:B3)</f>
<v>10920</v>
</c>
Тег f - формула, тег v - значение. Лично меня сама формула не интересует
3. andrewks 1268 13.06.12 14:59 Сейчас в теме
ага, сам примерно такое делал, только для ods (OpenOffice) - там тоже зип-архив, а внутриях хмл, который также можно распарсить
4. serega3333 13.06.12 15:36 Сейчас в теме
зачетно, для формул нужно очень
5. CheBurator 3399 13.06.12 19:54 Сейчас в теме
Автор, пиши ещё!
Шёпот теней; +1 Ответить
6. CaSH_2004 354 13.06.12 20:48 Сейчас в теме
Любопытно а какая скорость то чтения, есть какое-то сравнение? Например чтением через тот-же КОМ-Эксель?
7. andrewks 1268 13.06.12 22:26 Сейчас в теме
(6) по сравнению с КОМ-Эксель, думаю, на порядок
10. Abadonna 3833 14.06.12 05:23 Сейчас в теме
(6) CaSH_2004,
Проверял на матрице 10 000 строк х 5 колонок, ровно 7 секунд на моем рабочем
(Intel® Core™2 Duo CPU E7500 2.93GHz, ОЗУ 2 ГБ)
Обработку, скорее всего, можно и оптимизировать, эта скорее как пример на данный момент.
Может, и XML будет быстрее парсить как текстовик...
17. SergDi 27.06.12 11:55 Сейчас в теме
8. cool.vlad4 45 13.06.12 23:12 Сейчас в теме
9. Abadonna 3833 14.06.12 05:12 Сейчас в теме
(8) кхм... наверное тем, что я не мониторю все обработки :)))
В смысле, мы с Василием всегда плюсы друг-другу ставили, но никогда даже и не смотрели, что там за разработки ;)
Эту либо вообще не видел, либо в упор не помню
11. Abadonna 3833 14.06.12 18:37 Сейчас в теме
(8) cool.vlad4,
>А чем отличается от http://infostart.ru/public/19139/ ?
Посмотрел ради интереса, да абсолютно всем отличается! Код даже близко рядом не стоял, а что касается структуры архива - дык это мелкосфот придумал, а не мы с Василием.
И уж никогда бы мне в голову не пришло
МассивБукв = Новый Массив;
	МассивБукв.Добавить("A");
	МассивБукв.Добавить("B");
	МассивБукв.Добавить("C");
	МассивБукв.Добавить("D");
        .......... 

Испокон веков я делаю такие массивы так:
Стр="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
Абушев; Den_D; +2 Ответить
12. Поручик 4330 15.06.12 14:38 Сейчас в теме
(11) А я бывало и так

МассивБукв = Новый Массив;
Для Код = КодСимвола("A") По КодСимвола("Z") Цикл МассивБукв.Добавить(Символ(Код)); КонецЦикла;
Boulala; Aleks.spb; kare; Абушев; Den_D; brr; Abadonna; +7 Ответить
13. Jonny_wk 17.06.12 18:25 Сейчас в теме
14. Den_D 51 21.06.12 14:31 Сейчас в теме
Скоро мы все перейдем на XML общение ))
И даже между собой исключительно по родительским узлам будем общаться)))
orehova123; +1 Ответить
15. Bassgood 25.06.12 22:50 Сейчас в теме
(0) Заметил, что не всегда экселевский файл читается корректно при помощи этого метода (колонки читаются не в том порядке, в котором они расположены в экселе, и некоторые значения ячеек читаются неправильно), в чем причина я понять так и не смог (заметил лишь только то, что если его содержимое скопировать в новый файл - то все читается нормально), скорее всего имеется какая то заморочка с преобразованием эксель файла в XML формат, потому что при помощи COM файл читается нормально (если интересно, то приложил этот эксель файл к сообщению). Вот такая вот загагулина.
Прикрепленные файлы:
Тестовый эксель.xlsx
16. Abadonna 3833 26.06.12 05:10 Сейчас в теме
(15) Zigfridish,
я это тоже заметил, но пока особо не разбирался. Обработка абсолютно прозрачная, с комментами, может кто и найдет, где собака порылась;) Будет время - сам еще внимательно попроверяю
42. ksnik 358 14.04.19 00:54 Сейчас в теме
(16) колонки перепутаны потому что колонки создаются не единовременно в порядке определеном в файе но иначе, по мере обнаружения заполненных значений ячеек при сканировании листа процедурой ПарсингSheet.
  ИначеЕсли XML.Имя="#text" Тогда
   Разница=НомерКолонки-ТЗ.Колонки.Количество();
   Для А=1 По Разница Цикл
    ТЗ.Колонки.Добавить();
   КонецЦикла;
   Значение=XML.Значение;

В данном случае помогло бы предварительое скаирование для определения кол-ва строк и колонок в файле (или м.б. считывание этих значений из полей файла), затем создание колонок и второй проход по файлу парсером уже с заполнением ТЗ для сохранения правилього порядка. Если много пустых их можно удалить позже.
Простейшим способом упорядочения колонок будут заголовки колонок на исходном импортируемом листе.
43. ksnik 358 14.04.19 10:19 Сейчас в теме
(42) Вот программная реализация удаления путаницы и упорядочения колонок
//Космачев 13.04.2019 +Фиксируем колонки чтоб не переставлялись+

Функция ПарсингSheet1проход(Лист=1)

 XML=Новый ЧтениеXML;
 ИмяФайла="sheet"+Строка(Лист)+".xml";
 XML.ОткрытьФайл(ВременнаяПапка+ИмяФайла);
 КолвоКолонок = 0;
 Пока XML.Прочитать() Цикл
  Если (XML.Имя="row") И (XML.КоличествоАтрибутов()>0) Тогда
   ТекущаяСтрока=XML.ЗначениеАтрибута(0);
   НомерСтроки=Число(ТекущаяСтрока);
  ИначеЕсли XML.Имя="c" Тогда
   ИмяЯчейки=XML.ЗначениеАтрибута(0);
   НомерКолонки=СтрЗаменить(ИмяЯчейки,ТекущаяСтрока,"");
   НомерКолонки=КолонкаЧислом(НомерКолонки);
  ИначеЕсли XML.Имя="#text" Тогда
   Если НомерКолонки>КолвоКолонок Тогда
    КолвоКолонок = НомерКолонки;
   КонецЕсли;
  КонецЕсли;
 КонецЦикла;
 Возврат КолвоКолонок;
КонецФункции


Функция ПарсингSheet(Лист=1)
//Космачев 13.04.2019 +Фиксируем колонки чтоб не переставлялись+ 
 КолвоКолонок = ПарсингSheet1проход(НомерЛиста);
 Сообщить(КолвоКолонок);
 ТЗ=Новый ТаблицаЗначений;
 Для Сч = 1 По КолвоКолонок Цикл
  ТЗ.Колонки.Добавить();
 КонецЦикла;

//Космачев 13.04.2019 ---Фиксируем колонки чтоб не переставлялись---

 XML=Новый ЧтениеXML;

...

//Космачев 13.04.2019 +убираем динамическое создание колонок - фиксируем колонки чтоб не переставлялись+
   //Разница=НомерКолонки-ТЗ.Колонки.Количество();
   //Для А=1 По Разница Цикл
   // ТЗ.Колонки.Добавить();
   //КонецЦикла;
Показать
27. 1cmax 151 05.07.12 00:34 Сейчас в теме
(15) Zigfridish, Аналогичную багу нашел.. эх.. сначала думал что для любого сервака универсальное решение. а то серваки на линуксе. там никаких ком объектов...
31. Spartan 338 28.03.13 18:41 Сейчас в теме
(15) А где в Вашем файле получаются неправильные значения при чтении обработкой? А то файл немаленький - визуально очень сложно заметить. Мне нужно понять, насколько это критично для моей задачи.
32. Abadonna 3833 28.03.13 18:43 Сейчас в теме
(31)Блин, ну код же открытый. Мне она без надобности, к старому я не возвращаюсь;)
33. Spartan 338 28.03.13 19:35 Сейчас в теме
(32) Да не, вопросов нет... За код спасибо! Это я написал для тех, кто будет использовать. ;)
34. Abadonna 3833 28.03.13 19:52 Сейчас в теме
(33) Spartan, я просто не заметил сгоряча, что (31) не мне :)))
35. Spartan 338 29.03.13 09:41 Сейчас в теме
(15),(31) Все, увидел... посмотрел сегодня на свежую голову.
P.S. Нашел в чем косяк - сейчас разбираюсь как победить. Получается неверный массив строк из файла sharedStrings.xml, если в нем присутствуют пустые строки.
18. fillipok 12 28.06.12 10:18 Сейчас в теме
Спасибо за обработку))в добавку:
1. файлы OpenOffice таблицы формата .ods открываются таким же способом только естественно файл с данными xml другой))(вроде и .odt так же, но не проверял).
19. Konder.Djironimo 30.06.12 09:10 Сейчас в теме
Спасибо! Все было в свое время заточено под *.xls но потом с переходом на *.xlsx пришлось всех оставлять на 2003, а тут всех обрадуем ;) еще раз спасибо!
20. Dethmond 03.07.12 08:54 Сейчас в теме
Хорошо что стал поддерживать *.xlsx. Спасибо
21. Abadonna 3833 03.07.12 18:29 Сейчас в теме
(20)Честное слово, это не я! :))))) Это мелкософт поддерживает
Dethmond; +1 Ответить
22. Dethmond 03.07.12 21:03 Сейчас в теме
(21) ладно, Microsoft`у тоже спасибо))
29. yuraos 955 28.03.13 09:06 Сейчас в теме
(21)

Честное слово, это не я! :))))) Это мелкософт поддерживает



говорят он уже пожалел об этом
---
в следующем офисе вроде грозятся зделать бинарный закрытый формат
:)
23. khaoos 239 04.07.12 04:50 Сейчас в теме
Классно придумано. Да и на другие статьи автора обращу внимание, интересные вещи пишет. Молодец!
24. 1cmax 151 05.07.12 00:21 Сейчас в теме
Кстати, если в файле нет ни одной ячейки со строками
файл sharedStrings.xml не создается
и обработка валится с ошибкой.

стоит добавить проверку

Процедура ПарсингSharedStrings()
XML=Новый ЧтениеXML;
//Добавлено: maxval 03.07.2012
Имя = Объект.ВременнаяПапка+"sharedStrings.xml";
Ф = новый Файл(Имя);
Если Не ф.Существует() Тогда
Возврат;
КонецЕсли;
XML.ОткрытьФайл(Имя);
/// maxval 03.07.2012
Abadonna; +1 Ответить
26. Abadonna 3833 05.07.12 00:31 Сейчас в теме
(24) 1cmax,
Ага, я как-то поленился проверить...
25. 1cmax 151 05.07.12 00:21 Сейчас в теме
реализовал все те же принципы под Управляемые формы, в.т.ч. Веб-клиент:
http://infostart.ru/public/142187/
28. cerg110 3 13.07.12 07:23 Сейчас в теме
Как раз что скинули файл для загрузки в xsls. Как будет возможность сразу скачаю. Спасибо за полезную обработку.
30. Spartan 338 28.03.13 18:37 Сейчас в теме
(0) небольшой косячок... в блоке
	//--- находим строчные значения из файла  sharedStrings.xml
	МассивСтрок=Новый СписокЗначений;
	ПарсингSharedStrings();
	//--- находим индексы строк и прочие значения из файла \xl\worksheets\sheetN.xml

МассивСтрок д.б. именно массивом, а не списком значений, иначе при получении значения из ячейки со строкой имеем тип "ЭлементСпискаЗначений", а не "Строка".
	Если ЭтоСтрока Тогда
				Попытка
					Значение=МассивСтрок.Получить(Число(XML.Значение));
				Исключение
				КонецПопытки;

Визуально в табличном поле этого не видно, но при работе с получившейся таблицей могут быть неожиданности.
36. Spartan 338 29.03.13 10:45 Сейчас в теме
(0),(15),(27) Как-то так, видимо:
Функция ПарсингSharedStrings()
	XML=Новый ЧтениеXML;
	//XML.ОткрытьФайл(ВременнаяПапка+"sharedStrings.xml");
	//Добавлено: maxval 03.07.2012 
	Имя = ВременнаяПапка+"sharedStrings.xml"; 
	Ф = новый Файл(Имя); 
	Если Не Ф.Существует() Тогда 
		Возврат Ложь; 
	КонецЕсли; 
	XML.ОткрытьФайл(Имя); 
	/// maxval 03.07.2012
	Пока XML.Прочитать() Цикл
		//Если XML.Имя="#text" Тогда
		//	МассивСтрок.Добавить(XML.Значение);
		//КонецЕсли;
		// Spartan - 29.03.2013 - начало
		Если XML.Имя = "t" И XML.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
			Если XML.Прочитать() И XML.Имя = "#text" Тогда
				МассивСтрок.Добавить(XML.Значение);
			Иначе
				МассивСтрок.Добавить("");
			КонецЕсли; 
		КонецЕсли;
		// Spartan - 29.03.2013 - конец
	КонецЦикла;
	XML.Закрыть();
	
	Возврат Истина;
КонецФункции
Показать
Abadonna; +1 Ответить
37. Lapitskiy 902 05.03.15 14:10 Сейчас в теме
(36) Spartan, не недостаточно, когда несколько листов, неверно определяет.
38. freep777 06.08.15 14:44 Сейчас в теме
Обработка замечательная!!! Спасибо огромнющее за нее!

Только вот не пойму, на одном файле нормально работает, а на другом выдает ошибку
{Форма.Форма.Форма(80)}: Индекс находится за границами массива
ТЗ[НомерСтроки-1][НомерКолонки-1]=Значение;


Помогите, пожалуйста, разобраться.
(к сообщению прикреплены файлы - на "Книга2" - работает, а на "Книга1" - выдает ошибку)... Вроде ничем таким особым файлы не различаются??? Не могу понять...
Прикрепленные файлы:
Книга1.xlsx
Книга2.xlsx
39. ksnik 358 13.04.19 20:50 Сейчас в теме
(38) ответ найден, смотрите приложенные мной скриншоты - временные файлы,
вот этот лист загружается успешно

а на следующем скриншоте нумерация строк начинается не с единицы, что ведет к рассинхронизации номеров строк файла и таблизы значений 1с,

и он не загружается потому что в таблице значений количество строк соответствует количеству строк файла, но обращение к строке таблицы значений 1с идет по номеру строки файла который не соответствует номеру строки заведенному в 1с. Надо вводить уточнять нумерацию для соответствия между файлом и таблицей значений.
Прикрепленные файлы:
ccc1
ccc2
40. ksnik 358 13.04.19 21:45 Сейчас в теме
(38) вот такая доработка (исправление) парсит файл правильно
Функция ПарсингSheet(Лист=1)
 ТЗ=Новый ТаблицаЗначений;
 XML=Новый ЧтениеXML;
 ИмяФайла="sheet"+Строка(Лист)+".xml";
 XML.ОткрытьФайл(ВременнаяПапка+ИмяФайла);
 
 Пока XML.Прочитать() Цикл
  Если (XML.Имя="row") И (XML.КоличествоАтрибутов()>0) Тогда
   ТекущаяСтрока=XML.ЗначениеАтрибута(0);
   //Космачев+
   //Стр=ТЗ.Добавить();
   РазницаСтрок = ТекущаяСтрока - ТЗ.Количество();
   Для СчРазницаСтрок = 1 По РазницаСтрок Цикл
    Стр=ТЗ.Добавить();
   КонецЦикла;
   //Космачев-
   НомерСтроки=Число(ТекущаяСтрока);
Показать
41. ksnik 358 13.04.19 22:08 Сейчас в теме
Спасибо автору за легкий код! Очень хорошая обработка! Я еще добавил в нее номера строк и колонок вот так, процедуру ТЗИПриПолученииДанных надо подключить через обработчик события табличного поля:
// Добавим в начало модуля переменную необходимую для автоматической нумерации строк
Перем ТЗАнализа;
...
//считывание ячеек заданного листа
Процедура ОсновныеДействияФормыПарсинг(Кнопка)
 Если Не ФайлСчитан Тогда
  Предупреждение("Не открыт файл xlsx!",5);
  Возврат;
 КонецЕсли;
 ТЗИ.Очистить();
 //--- находим строчные значения из файла  sharedStrings.xml
 МассивСтрок=Новый СписокЗначений;
 ПарсингSharedStrings();
 //--- находим индексы строк и прочие значения из файла \xl\worksheets\sheetN.xml
 Если НомерЛиста>КоличествоЛистов Тогда
  Сообщить("Указан номер листа, превышающий общее количество листов. Установлен Лист 1",СтатусСообщения.Информация);
  НомерЛиста=1;
 КонецЕсли;
 //Космачев 13.04.2019 +добавил номера строк и колонок и уменьшил ширину пустых колонок+
 ТЗАнализа = ПарсингSheet(НомерЛиста);
 ЭлементыФормы.ТЗИ.Значение=ТЗАнализа;
 ЭлементыФормы.ТЗИ.СоздатьКолонки();
 СписокНомеров = Новый СписокЗначений;
 Для Каждого СтрТЗ Из ТЗАнализа Цикл
  Для Каждого КолТЗ Из ТЗАнализа.Колонки Цикл
   Если СокрЛП(ТЗАнализа[ТЗАнализа.Индекс(СтрТЗ)][ТЗАнализа.Колонки.Индекс(КолТЗ)])>"" Тогда
    Если СписокНомеров.НайтиПоЗначению(ТЗАнализа.Колонки.Индекс(КолТЗ))=Неопределено Тогда
     СписокНомеров.Добавить(ТЗАнализа.Колонки.Индекс(КолТЗ));
    КонецЕсли; 
   КонецЕсли;
  КонецЦикла;
 КонецЦикла;
 н = 0;
 Для Каждого КолонкаТЗИ Из ЭлементыФормы.ТЗИ.Колонки Цикл
  КолонкаТЗИ.ТекстШапки = СокрЛП(н);
  Если СписокНомеров.НайтиПоЗначению(н)=Неопределено Тогда
   КолонкаТЗИ.Ширина = 1;
  КонецЕсли;
  н = н + 1;
 КонецЦикла;
 ЭлементыФормы.ТЗИ.Колонки.Вставить(0,"НПП");
КонецПроцедуры

Процедура ТЗИПриПолученииДанных(Элемент, ОформленияСтрок)
 Для Каждого ОфСтроки Из ОформленияСтрок Цикл
  //ОфСтроки.Ячейки.Колонка1.УстановитьТекст(СокрЛП(ТЗАнализа.Индекс(Элемент.ТекущаяСтрока)));//+1
  ОфСтроки.Ячейки.Колонка1.УстановитьТекст(СокрЛП(ТЗАнализа.Индекс(ОфСтроки.ДанныеСтроки)));//+1
 КонецЦикла;
КонецПроцедуры
//Космачев-
Процедура ПриОткрытии()
Показать

и уменьшил ширину колонок в которых ни в одной строке нет данных
Оставьте свое сообщение

См. также

Выгрузка из 1С номенклатуры со штрихкодами без программирования 3

Статья Программист Пользователь Стажер Нет файла v8 УТ11 Россия Бесплатно (free) Загрузка и выгрузка в Excel Внешние источники данных

Я так и не смог найти простой инструкции или обработки, чтобы выгрузить из 1С: Управление торговлей 11 номенклатуру вместе со штрихкодами, поэтому решил написать собственную инструкцию.

28.08.2019    1537    user1114182    4       

Загрузка картинок в справочники (Универсальная загрузка из табличного документа) 8

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Обработка справочников Загрузка и выгрузка в Excel

Пример загрузки картинок в справочник Номенклатура (с помощью обработки универсальная загрузка данных из табличного документа). Проверялось на конфигурации УТ 11.4.7.

28.05.2019    2089    rasdag    2       

Преобразование EXCEL в таблицу значений без COM и других извращений 208

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Получение таблицы значений из excel в 1С v8, без COM, внешних источников данных и т.д. EXCELВТаблицуЗначений() - За 10 строчек кода! Реализация протестирована на 1С 8.3.12.1714 (x64).

18.04.2019    12051    9    Eret1k    43       

Копирование числовых ячеек из 1С в Excel 26

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel Администрирование данных 1С

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019    10409    itriot11    21       

Запись одной книги Excel на нескольких листах средствами 1С (без внешних компонент) 139

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Пользователи часто просят сохранить им стопиццот отчетов в один файл Excel, чтобы отчеты были в одном файле. Ну или клиент хочет счет, накладную и счет-фактуру получить в одном документе. 1С умеет это делать без всяких там COM-объектов. Давайте разберемся, куда нажимать и что крутить.

14.01.2019    11668    starik-2005    23       

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д) 35

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Как легко загружать данные из электронных таблиц (Excel, OpenOffice и т.д). На примере загрузки в табличную часть документа Поступление товаров и услуг в УТ 11.4.

09.01.2019    6711    rasdag    14       

Работа с Excel через COM 20

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel

Несколько примеров работы с excel (ms office 2010, в моем случае) через COM.

01.10.2018    5040    jaroslav.h    0       

Выгрузка в Excel с использованием формата OpenXML, разбор файла sheet1.xml 13

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Судя по количеству просмотров темы https://infostart.ru/public/900022/ решил описать структуру файла Листа excel. На полноту не претендую, опишу то, что знаю.

21.09.2018    4108    user1045404    2       

Excel: создание в формате xlsx без COM технологии 112

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

По работе приходится часто выгружать данные в Excel формате. При большом количестве строк и формул этот процесс достаточно длительный. Решил написать для своих целей небольшую библиотечку для выгрузки данных. Используется технология open-xml. Никаких библиотек не надо, пишу напрямую в xml файлики. На данном этапе сделано форматирование, формулы.

10.09.2018    7698    user1045404    16       

Из Excel в 1С запросом 33

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

... ну, конечно, не прям так типовым языком запросов, а расширенным языком запросов. Речь пойдет о том, как "залить" данные в таблицы 1С и не пилить при этом бесконечного количества наколеночных обработок.

14.08.2018    13510    m-rv    5       

Загрузка из Excel в управляемом приложении 25

Статья Программист Нет файла v8::УФ Windows Бесплатно (free) Загрузка и выгрузка в Excel

С появлением управляемого интерфейса стали актуальными вопросы в давно освоенных приемах работы. В частности, загрузка из файла.

30.11.2017    21620    alex_bitti    15       

Функция сохранения картинок из книги Excel в каталог с определением координат на листе 8

Статья Программист Нет файла v8 Бесплатно (free) Загрузка и выгрузка в Excel Универсальные функции

Разбор файла *.xlsx как Web-архива, выгрузка изображений без потери качества, с определением положения изображений.

12.11.2017    7117    user634820_zergemoth    1       

Работа с Excel 288

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Собрал различные полезности для работы с Excel из 1С. Иногда приходится форматировать документ Excel программно из 1С. Так вот, чтобы не искать постоянно на просторах интернета как сделать левое выравнивание в ячейке Excel из 1С и т.п. решил опубликовать это...

23.10.2017    24615    arakelyan    39       

Невалидный XLSX при сохранении Табличного документа 3

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Загрузка и выгрузка в Excel

Ошибка открытия XLSX файлов, созданных при сохранении Табличного документа. (Невалидный формат файла)

21.10.2017    8761    saddy    3       

Почему при загрузке таблицы Excel в 1С возникают ошибки? 9

Статья Программист Нет файла v8 Бесплатно (free) Загрузка и выгрузка в Excel

При загрузке из EXCEL в 1С методом MS ADODB.Connection столкнулся с некоторыми проблемами, которые попытался устранить в ниже приведенной статье. Надеюсь, что статья поможет вам сократить время разработки.  Особая благодарность Андрею М. за публикацию //infostart.ru/public/163640/

28.04.2017    12384    dakork    4       

Загрузка значений свойств номенклатуры в Альфа-Авто с использованием обработки загрузки данных из табличного документа 15

Статья Программист Руководитель проекта Нет файла v8 1cv8.cf Автомобили, автосервисы Россия УУ Windows Учет ТМЦ Бесплатно (free) Загрузка и выгрузка в Excel

В публикации будет рассмотрено использование встроенной в отраслевую конфигурацию Альфа-Авто обработки по загрузке данных из табличного документа для заполнения значений дополнительных свойств номенклатуры.

13.10.2016    14189    miavolas    15       

Решение проблемы медленной загрузки из файла Excel, защищенного паролем 11

Статья Программист Нет файла v8 Россия Бесплатно (free) Загрузка и выгрузка в Excel

Столкнулся с проблемой загрузки из файла Excel. Загрузка занимала около получаса и не всегда заканчивалась успешно. Решение проблемы изложу в данной статье.

27.09.2016    7900    HAMMER_59    4       

Быстрая выгрузка больших плоских отчетов в Excel 22

Статья Программист Нет файла v8 Windows Бесплатно (free) Загрузка и выгрузка в Excel

Предлагаю способ для того, чтобы быстрее выгружать большие плоские отчеты из 1С 8 в Excel, без использования оперативной памяти на сервере и на клиенте, что очень важно, поскольку помогает избежать ошибок вида "Недостаточно памяти на клиенте" или "Недостаточно памяти на сервере". Не использует внешние компоненты. Минусы в том, что отчет выходит неформатированный, приходится настраивать ширину колонок, закрашивать границы, шрифты, жирность и т.п. Но когда отчет, выгружавшийся 3 часа, выгружается 20 минут, эти проблемы мои клиенты считают несущественными.

29.11.2015    12882    matveev.andrey.v    17       

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм 20

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    13929    etmarket    14       

Внедрение адресного склада в логистическом операторе 25

Статья Системный администратор Программист Бизнес-аналитик Пользователь Нет файла v8 v8::ОУ УТ11 Оптовая торговля, дистрибуция, логистика Россия УУ Windows Оптовая торговля Розничная торговля Учет ТМЦ УСН Бесплатно (free) Загрузка и выгрузка в Excel Бухгалтерский учет Рабочее место

Каких-то 10 лет назад бюджет внедрений адресных складов составлял десятки тысяч долларов и месяцы работ целой команды, а теперь - типовое решение от 1С вполне рабочее и без кастомизации: немного интеграции, немного консультирования – и в продуктив. Внедрение адресного склада, в массе внедрений 1С:Управление торговлей, ред. 11.1 (далее УТ), штука до сих пор довольно-таки редкая. Данная статья описывает опыт одного маленького, но свежего внедрения адресного склада в УТ (11.1.10) и может быть интересна как практический кейс.

1 стартмани

10.08.2015    18345    papche    12       

Выгрузка таблицы значений в Excel 30

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel

Примитивно, грубо, без дизайна, но очень быстро.

28.06.2015    17074    Yashazz    31       

Скорость закачки с EXCEL при работе с большими файлами 26

Инструменты и обработки Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Производительность и оптимизация (HighLoad) Загрузка и выгрузка в Excel

Поставлена задача уменьшить время загрузки данных с EXCEL. Пока ждал ответа от разработчиков ядра, сам начал копать всё, что угодно. ЗАДАЧА решена, с чем спешу поделиться.

09.06.2015    13732    ybatiaev    31       

Чтение из Эксель-файла 9

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Некоторые выдержки из моих наработок, связанных с работой 1С и приложений майкрософт-оффис

26.05.2015    9920    nikitin19819    7       

Загрузка из EXCEL в 1С на платформе 8.3.6/8.3.7/8.3.8/8.3.9/8.3.10 (с картинками) 319

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Импорт содержимого из файлов в форматах XLS (Microsoft Excel 97), Microsoft Office OpenXML (Microsoft Excel 2007- 2010) и ODS (OpenDocument) в таблицу значений.

06.04.2015    205799    StepByStep    72       

Вывод таблицы значений в Excel 17

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Изложена методика вывода таблицы значений в Excel с помощью именованных ячеек.

21.01.2015    13159    scientes    6       

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним 78

Статья Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    70768    shmellevich    35       

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

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Универсальные обработки Загрузка и выгрузка в Excel Обмен через XML

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

11.09.2014    63254    StepByStep    26       

Простой способ программного сохранения больших отчетов из СКД в формат Excel 39

Статья Программист Нет файла v8::СКД 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel Универсальные функции

Перерыв весь интернет не смог найти простого способа сохранить отчет с большим числом строк в формате Excel. Везде предлагалось писать процедуры построчной записи, ADO, COMSafeArray и прочее. Метод же, используемый во всех найденный публикациях "Результат.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX)", не работает при большом числе строк. Публикация http://infostart.ru/public/77128/ натолкнула на простую идею, которую и реализовал.

07.08.2014    27158    den_valley    14       

Преобразование Универсального отчета в сводную таблицу Excel. 6

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel

Тем, кто часто пользуется сводной таблицей Excel, неудобно использовать формат, который получается на выходе универсального отчета. т.к. Универсальный отчет строится с группировками, а данные для сводной таблицы нужны в плоском виде.

16.06.2014    14458    Mos    4       

Как предотвратить возникновение ошибки при одновременном обращении пользователя и обработки к Excel. 40

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel

Если открыт (или открыть) файл Excel (к которому будет обращаться обработка), и активировать какую-либо ячейку или любое диалоговое окно и при этом обработка обратится к этому файлу, то возникнет ошибка. Так же, ошибка может возникнуть, если обработка запустила один экземпляр Excel, если пользователь, во время работы обработки откроет другой файл Excel или тот, к которому обращается обработка, то этот файл откроется в том же экземпляре приложения Excel и тогда опять возможна ошибка. Как этого избежать?

30.03.2014    16729    akor77    13       

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

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel Обмен через XML

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

01.11.2013    96742    StepByStep    73       

Работа с Excel в фоновом задании 129

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel

Встала задача. По электронной почте приходят письма с вложениями таблиц Excel. Получение почты производится встроенным клиентом 1С фоновым заданием. Необходимо было по расписанию несколько раз в день извлекать из новых писем вложения и загружать из них данные. Тут я столкнулся с проблемой - работать с Excel в фоновом задании ни через COM, ни через ADO не удавалось. Вываливалась ошибка. Нигде в сети четкого решения проблемы я не обнаружил. В итоге, собирая информацию по крупицам из разных источников (порой и вовсе не связанных с 1с) и нескольких дней мучений все же я решил данную проблему. Ниже я опишу свое решение, чтобы помочь таким же, как я )

01.08.2013    56689    ltfriend    58       

Выгрузка Таблицы значений из 1С 8 в Excel с помощью MS ADO 38

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel

Функции для выгрузки Таблицы значений из 1С 8 в таблицу Excel с использованием объектов Microsoft ActiveX Data Objects (ADO) и Microsoft ActiveX Data Objects Extensions (ADOX).

10.06.2013    23726    AzagTot    17       

Подсистема "COMExchange": прямой доступ к EXCEL через ADO 8

Статья Системный администратор Программист Нет файла v8 1cv8.cf УТ10 УПП1 Россия Windows Бесплатно (free) Файловые протоколы обмена, FTP Загрузка и выгрузка в Excel Внешние источники данных

На примере этой, очень популярной, темы наглядно продемонстрированы нетривиальные возможности консоли запросов в составе подсистемы: 1. использование событий выполнения запроса (в том числе для запуска на выполнение других запросов) 2. запуск на выполнение запроса в цикле с подстановкой значений параметров из таблицы значений.

20.01.2013    21173    yuraos    7       

Загрузка из EXCEL в 1С. Список листов EXCEL 34

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Универсальные обработки Загрузка и выгрузка в Excel Обмен через XML

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Методы получения списка листов файлов типа EXCEL. Поддерживаемые типы: *.xls,*.xlsx,*.ods,*.sxc.

30.11.2012    45695    StepByStep    5       

Функция получения массива из Экселя 18

Статья Программист Нет файла v8 Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel Универсальные функции

Функция, возвращающая содержимое эксель-файла в виде массива структур (работает в тонком клиенте и может результат передавать на сервер)

21.10.2012    5417    yermak    5       

Загрузка материалов из программы Командор Дизайнер в 1С: Бухгалтерия 8. 4

Статья Системный администратор Программист Нет файла v8 БП2.0 Россия БУ Windows Учет ТМЦ Бесплатно (free) Пользователю системы Загрузка и выгрузка в Excel Внешние источники данных

Komandor Designer - программа для проектирования шкафов купе. Ее используют многие предприятия, которые производят мебель. Также они используют для учета программу 1С. Поэтому возникает проблема обмена данными между этими программами. Что важно для плодотворного общения двух людей — правильно — они должны понимать друг друга, разговаривать на одном языке. То же правило и в нашем случае, программы должны одинаково правильно понимать, какой материал находится в заказе, расходе сырья по заказу.

22.08.2012    9297    knigula    1       

Обработка событий документов MS Office из 1С8.х. и кольцевые ссылки. 11

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Обработка событий документов MS Office из 1С8.х. Возникновение кольцевых ссылок при работе с документами MS Office из 1С8.х

18.07.2012    8202    План счетов    1       

Выгрузка данных в Excel 30

Статья Системный администратор Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Загрузка и выгрузка в Excel

Часто в ходе работы в 1С требуется выбирать данные одновременно из разных источников (справочников, документов, регистров и т.д.) и сохранять эту сводную информацию в формате Excel (*.xls) или Табличных документов 1С (*.mxl). Затем, с помощью универсальной обработки "Загрузка данных из табличного документа", можно загрузить данные, например, в другую базу. В данной статье представлен метод выгрузки информации во внешнюю таблицу через Табличный Документ с сохранением форматов данных.

15.06.2012    38077    volconok27    12       

Функция получения таблицы значений из файла Excel 30

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel Универсальные функции

Функция получения таблицы значений из файла Excel. Использует запрос в среде самого Excel. Параметры функции: ПутьКФайлу (строка) - полный путь к файлу Excel ИмяНомерСтраницы - имя (строка) или порядковый номер (число) страницы файла Excel Заголовок (булево) - является ли первая строка строкой заголовка. Если Истина, то колонки будущей ТЗ проименуются из строки заголовка Excel, если Ложь, то колонки проименуются системно "F1", "F2" и т.д ПерваяСтрока (число) - номер первой строки считывания с листа Excel ВАЖНО!!! Типы колонок будущей ТЗ будут определяться типом первой строки данных Excel (именно данных, не заголовка). Поэтому важно соблюдать в Excel тип колонок данных Функцию достаточно разместить в общем модуле своей конфигурации.

31.05.2012    26504    sbv2005    8       

Обработка «Загрузка данных из табличного документа». Пример настроек и использование. 33

Статья Системный администратор Программист Нет файла v8 1cv8.cf Учет ТМЦ Бесплатно (free) Инструментарий разработчика Загрузка и выгрузка в Excel

Данный пример будет полезен программистам 1С и специалистам по «Управлению торговлей», которым необходимо автоматизировать загрузку в справочники и документы из внешних табличных документов. В частности тем, кому необходимо загрузить товары в документ «поступление товаров и услуг» из электронной накладной в формате xls.

30.05.2012    24808    sabob    6