Отображение группировок строк в EXCEL в файле XLSX, созданного из 1с с LibroOffice Calc
Добрый день, у меня вопрос -
Обычные формы. Работаю с ПакетОтображаемыхДокументов, сохраняю тестовый прайс с группировками на двух страницах в XLSX, далее делаю постобработку в 1с этого файла средствами LibroOffice Calc(как пример - крашу ярлычки и указываю активный лист) и сохраняю результат в тот же файл.После чего группировки этого файла при открытии в Excel выглядят не верно, а если постобработку не делать - то верно.
Вот тестовая обработка
ТестГруппировкиПослеОбработкиLO
Если надо приведу код. Помогите отобразить группировки как надо(без итогов внизу)
Обычные формы. Работаю с ПакетОтображаемыхДокументов, сохраняю тестовый прайс с группировками на двух страницах в XLSX, далее делаю постобработку в 1с этого файла средствами LibroOffice Calc(как пример - крашу ярлычки и указываю активный лист) и сохраняю результат в тот же файл.После чего группировки этого файла при открытии в Excel выглядят не верно, а если постобработку не делать - то верно.
Вот тестовая обработка
Если надо приведу код. Помогите отобразить группировки как надо(без итогов внизу)
Прикрепленные файлы:
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Вот код тестовой обработки
Процедура КнопкаВыполнитьНажатие(Кнопка)
Пакет = Новый ПакетОтображаемыхДокументов;
Пакет.КоличествоЭкземпляров = 1;
Макет = ПолучитьМакет("Макет");
ТабДок = Новый ТабличныйДокумент;
ТабДок.НачатьАвтогруппировкуСтрок();
Уровень1 = 0;
Уровень2 = 1;
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Игрушка1";
ТабДок.Вывести(ОбластьНачало,Уровень1);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Малая(Игрушка1)";
ТабДок.Вывести(ОбластьНачало,Уровень2);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Большая(Игрушка1)";
ТабДок.Вывести(ОбластьНачало,Уровень2);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Игрушка2";
ТабДок.Вывести(ОбластьНачало,Уровень1);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Синяя(Игрушка2)";
ТабДок.Вывести(ОбластьНачало,Уровень2);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Белая(Игрушка2)";
ТабДок.Вывести(ОбластьНачало,Уровень2);
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Защита = Ложь;
ТабДок.ИтогиСнизу = Ложь;
//ТабДок.Показать();
ЭлементПакета = Пакет.Состав.Добавить();
ЭлементПакета.Данные = ПоместитьВоВременноеХранилище(ТабДок, Новый УникальныйИдентификатор);
ЭлементПакета.Наименование = СокрЛП("Мой лист1");
ТабДок1 = Новый ТабличныйДокумент;
ТабДок1.НачатьАвтогруппировкуСтрок();
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Игрушка0";
ТабДок1.Вывести(ОбластьНачало,Уровень1);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Игрушка3";
ТабДок1.Вывести(ОбластьНачало,Уровень1);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Простая(Игрушка3)";
ТабДок1.Вывести(ОбластьНачало,Уровень2);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Сложная(Игрушка3)";
ТабДок1.Вывести(ОбластьНачало,Уровень2);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Игрушка4";
ТабДок1.Вывести(ОбластьНачало,Уровень1);
ОбластьНачало = Макет.ПолучитьОбласть("СтрокаТовар|НачальныеКолонки");
ОбластьНачало.Параметры.Товар = "Синяя(Игрушка4)";
ТабДок1.Вывести(ОбластьНачало,Уровень2);
ТабДок1.ЗакончитьАвтогруппировкуСтрок();
ТабДок1.Защита = Ложь;
ТабДок1.ИтогиСнизу = Ложь;
//ТабДок1.Показать();
ЭлементПакета = Пакет.Состав.Добавить();
ЭлементПакета.Данные = ПоместитьВоВременноеХранилище(ТабДок1, Новый УникальныйИдентификатор);
ЭлементПакета.Наименование = СокрЛП("Мой лист2");
Путь = ПолучитьИмяВременногоФайла("XLSX");
Пакет.Записать(Путь, ТипФайлаПакетаОтображаемыхДокументов.XLSX);
фл = ОбработатьФайлВLO(Путь);
СозданныйПрайс = Путь;
КонецПроцедуры
Функция ПривестиФайлКУРЛ(ПутьКФайлу) Экспорт
ПутьКФайлу1 = СтрЗаменить(ПутьКФайлу," ","%20");
ПутьКФайлу1 = СтрЗаменить(ПутьКФайлу1,"\","/");
Возврат "file:/" + "/localhost/" + ПутьКФайлу1;
Конецфункции
Функция ОбработатьФайлВLO(ИмяПрайса)Экспорт
Попытка
ServiceManager = Новый COMОбъект("com.sun.star.ServiceManager");
Исключение
Сообщить("Ошибка при связи с сервис менеджером (com.sun.star.ServiceManager)." +
+ Символы.ПС + ОписаниеОшибки());
Возврат Истина;
КонецПопытки;
Попытка
Desktop = ServiceManager.CreateInstance("com.sun.star.frame.Desktop");
Исключение
Сообщить("Ошибка при запуске сервиса Desktop (com.sun.star.frame.Desktop).'" +
+ Символы.ПС + ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;
Парам = Новый COMSafeArray("VT_DISPATCH", 1);
Свойства1 = ServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
Свойства1.Name = "Hidden";
Свойства1.Value = Истина;
Парам.SetValue(0,Свойства1);
Document = Desktop.LoadComponentFromURL(ПривестиФайлКУРЛ(ИмяПрайса), "_blank", 0, Парам);
Document.lockControllers();
Document.addActionLock();
Sheets=Document.getSheets();
//Покраска ярлычков листов
ЦветЯрлычка = 255;//синий
Sheet = Sheets.getByIndex(0);
Sheet.TabColor = ЦветЯрлычка;
ЦветЯрлычка = 16776960;//желтый
Sheet = Sheets.getByIndex(1);
Sheet.TabColor = ЦветЯрлычка;
//Установка активного листа
oCtrl = Document.CurrentController;
oCtrl.setActiveSheet(Sheets.getByIndex(0));
//Сохранение документа
Document.unlockControllers();
Document.removeActionLock();
Попытка
Document.Store();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Document.Close(Истина);
//Отключаем COM - соединение
Desktop.terminate();
Возврат Истина;
КонецФункции
Показать
Ну если не имеет, то буду делать без группировок(оформлю характеристики сдвигом текста).
Может кто еще что знает по поводу группировок в ЛО(сохранение руками в xlsx и ods тоже группировки отображает не так как хотелось бы)
Может кто еще что знает по поводу группировок в ЛО(сохранение руками в xlsx и ods тоже группировки отображает не так как хотелось бы)
(5) Спасибо, в ваших сообщениях нашлось Выгрузка отчета в Excel с формулами, используя заполнение - шаблон макета для сложных формул , так что возможно обойтись, наверное, без постобработки в LO.
Хотя там останется такой момент - пока не перещелкнешь лист - гиперссылки, в частности, не будут на первом листе работать, т.к Пакет сохраняет так, что все листы активны, а надо только один.
Хотя там останется такой момент - пока не перещелкнешь лист - гиперссылки, в частности, не будут на первом листе работать, т.к Пакет сохраняет так, что все листы активны, а надо только один.
Вакансии
Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)