Выгрузка данных в табличный документ xlsx
Добрый день коллеги.Подскажите может кто сталкивался с такой проблемой.
При штатном выгрузки используя табличный документ и расширения xlsx.Формируется файл открываю через эксель имею 2 листа с данными все ок. Но хотелось бы 2 лист заблокировать
из синтаксиса вычитал только что нужно ставить Истина на флаг Защита у ячейки но кроме как типа
ОбластьЯчеекТабличногоДокумента я не смог найти ,а также выставить флаг только просмотр у самого табличного документа.Ну вообщем все попытки провалились заблокировать лист или ячейки.Может кто поделится опытом.Спасибо
При штатном выгрузки используя табличный документ и расширения xlsx.Формируется файл открываю через эксель имею 2 листа с данными все ок. Но хотелось бы 2 лист заблокировать
из синтаксиса вычитал только что нужно ставить Истина на флаг Защита у ячейки но кроме как типа
ОбластьЯчеекТабличногоДокумента я не смог найти ,а также выставить флаг только просмотр у самого табличного документа.Ну вообщем все попытки провалились заблокировать лист или ячейки.Может кто поделится опытом.Спасибо
По теме из базы знаний
- Описание выгрузки табличного документа в excel
- Сохранение табличного документа в EXCEL (xlsx) с форматом ячеек Число, Дата, Дата время
- Приемы работы с СКД: выгрузка данных справочников и документов в линейном виде в табличный документ
- Импорт данных (доступные форматы: *.xls, *. xlsx, *.xlsb , *.xltx, *.txt,*.slk, *.ods (Open Document), *.dbf, *.dif, *.csv)
- Несколько альтернативных универсальных способов подбора ссылок при переносах данных
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Пример не мой но алгоритм такой же
ТабДок = Новый ТабличныйДокумент;
КоличествоКолонок = Таблица.Колонки.Количество();
//Формируем строку с заголовками
Для Счетчик = 1 По КоличествоКолонок Цикл
ТекущаяКолонка = Таблица.Колонки[Счетчик - 1];
ТабДок.Область("R1C" + Счетчик).Текст = ТекущаяКолонка.Имя;
КонецЦикла;
//Добавляем строки из таблицы
НомерСтроки = 2;
Для каждого СтрокаТаблицы Из Таблица Цикл
Для НомерКолонки = 1 По КоличествоКолонок Цикл
ТабДок.Область("R" + стрЗаменить(строка(НомерСтроки),Символы.НПП,"") + "C" + стрЗаменить(строка(НомерКолонки),Символы.НПП,"") ).Текст = СтрЗаменить(Стрзаменить(Строка(СтрокаТаблицы[НомерКолонки - 1]), Символы.НПП,""),",",".");
Если Строка(ТипЗнч(СтрокаТаблицы[4]))="Число" тогда
ТабДок.Область("R" + стрЗаменить(строка(НомерСтроки),Символы.НПП,"") + "C" + стрЗаменить(строка(НомерКолонки),Символы.НПП,"") ).Формат = "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=' '; ЧГ=0";
ИначеЕсли Строка(ТипЗнч(СтрокаТаблицы[4]))="Дата" тогда
ТабДок.Область("R" + стрЗаменить(строка(НомерСтроки),Символы.НПП,"") + "C" + стрЗаменить(строка(НомерКолонки),Символы.НПП,"") ).Формат = "ДФ=dd.MM.yyyy; ДЛФ=D; ДП=-";
КонецЕсли;
КонецЦикла;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
//Записываем табличный документ в файл Excel
ТабДок.Записать(ИмяФайлаЭксель, ТипФайлаТабличногоДокумента.XLSX);
ТабДок = Новый ТабличныйДокумент;
КоличествоКолонок = Таблица.Колонки.Количество();
//Формируем строку с заголовками
Для Счетчик = 1 По КоличествоКолонок Цикл
ТекущаяКолонка = Таблица.Колонки[Счетчик - 1];
ТабДок.Область("R1C" + Счетчик).Текст = ТекущаяКолонка.Имя;
КонецЦикла;
//Добавляем строки из таблицы
НомерСтроки = 2;
Для каждого СтрокаТаблицы Из Таблица Цикл
Для НомерКолонки = 1 По КоличествоКолонок Цикл
ТабДок.Область("R" + стрЗаменить(строка(НомерСтроки),Символы.НПП,"") + "C" + стрЗаменить(строка(НомерКолонки),Символы.НПП,"") ).Текст = СтрЗаменить(Стрзаменить(Строка(СтрокаТаблицы[НомерКолонки - 1]), Символы.НПП,""),",",".");
Если Строка(ТипЗнч(СтрокаТаблицы[4]))="Число" тогда
ТабДок.Область("R" + стрЗаменить(строка(НомерСтроки),Символы.НПП,"") + "C" + стрЗаменить(строка(НомерКолонки),Символы.НПП,"") ).Формат = "ЧЦ=15; ЧДЦ=2; ЧРД=.; ЧРГ=' '; ЧГ=0";
ИначеЕсли Строка(ТипЗнч(СтрокаТаблицы[4]))="Дата" тогда
ТабДок.Область("R" + стрЗаменить(строка(НомерСтроки),Символы.НПП,"") + "C" + стрЗаменить(строка(НомерКолонки),Символы.НПП,"") ).Формат = "ДФ=dd.MM.yyyy; ДЛФ=D; ДП=-";
КонецЕсли;
КонецЦикла;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
//Записываем табличный документ в файл Excel
ТабДок.Записать(ИмяФайлаЭксель, ТипФайлаТабличногоДокумента.XLSX);
Если 1С не умеет, то решение - сохранить в файл xls, потом открыть в Excel и доработать до нужного состояния.
Посмотрите тут. Практически то, что вам надо.
https://infostart.ru/public/685804/
Посмотрите тут. Практически то, что вам надо.
(10) У меня 2 листа когда я сохраняю через xls при первом открытии активно стразу 2 листа так как все заносится копипаст то получается задевают 2 лист если не выделят нужный лист. Поэтому хочу заблокировать что бы не давало писать
в ячейках хранятся настройки по загрузки в другую базу
в ячейках хранятся настройки по загрузки в другую базу
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот