From 3b85841ea633cfbca3184c938505105b8c95e8b0 Mon Sep 17 00:00:00 2001 From: Elena Subbotina Date: Wed, 15 Oct 2025 12:37:04 +0300 Subject: [PATCH] fix bug #77472 --- OdfFile/Reader/Converter/xlsx_drawing.cpp | 12 ++++++++++++ OdfFile/Reader/Format/office_forms.cpp | 8 +++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/OdfFile/Reader/Converter/xlsx_drawing.cpp b/OdfFile/Reader/Converter/xlsx_drawing.cpp index e673b5fd07..bc58609fe3 100644 --- a/OdfFile/Reader/Converter/xlsx_drawing.cpp +++ b/OdfFile/Reader/Converter/xlsx_drawing.cpp @@ -665,6 +665,18 @@ void _xlsx_drawing::serialize_vml(std::wostream & strm) if (*sVal == L"horizontal") CP_XML_NODE(L"x:Horiz"); else CP_XML_NODE(L"x:Vert"); } + + if (sub_type == OBJ_DropdownList) + { + CP_XML_NODE(L"x:DropStyle") + { + CP_XML_STREAM() << L"Combo"; + } + CP_XML_NODE(L"x:DropLines") + { + CP_XML_STREAM() << 8; + } + } } } } diff --git a/OdfFile/Reader/Format/office_forms.cpp b/OdfFile/Reader/Format/office_forms.cpp index 6fd7239ad5..39695b6a28 100644 --- a/OdfFile/Reader/Format/office_forms.cpp +++ b/OdfFile/Reader/Format/office_forms.cpp @@ -968,6 +968,9 @@ void form_listbox::add_attributes( const xml::attributes_wc_ptr & Attributes ) CP_APPLY_ATTR(L"form:list-linkage-type", list_linkage_type_); CP_APPLY_ATTR(L"form:size", size_); CP_APPLY_ATTR(L"form:value", n_value_); + + if (dropdown_ && dropdown_->get()) + object_type_ = OBJ_DropdownList; } void form_listbox::docx_convert(oox::docx_conversion_context & Context) { @@ -978,7 +981,10 @@ void form_listbox::docx_convert(oox::docx_conversion_context & Context) } void form_listbox::xlsx_convert(oox::xlsx_conversion_context & Context) { - Context.get_forms_context().start_element(oox::formListbox); + if (dropdown_ && dropdown_->get()) + Context.get_forms_context().start_element(oox::formCombobox); + else + Context.get_forms_context().start_element(oox::formListbox); Context.get_forms_context().set_element(dynamic_cast(this)); form_element::xlsx_convert(Context);