123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480 |
- // Copyright (c) 2016-2021 Thomas Fussell
- //
- // Permission is hereby granted, free of charge, to any person obtaining a copy
- // of this software and associated documentation files (the "Software"), to deal
- // in the Software without restriction, including without limitation the rights
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- // copies of the Software, and to permit persons to whom the Software is
- // furnished to do so, subject to the following conditions:
- //
- // The above copyright notice and this permission notice shall be included in
- // all copies or substantial portions of the Software.
- //
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- // THE SOFTWARE
- //
- // @license: http://www.opensource.org/licenses/mit-license.php
- // @author: see AUTHORS file
- #include <detail/serialization/custom_value_traits.hpp>
- namespace xlnt {
- namespace detail {
- /// <summary>
- /// Returns the string representation of the underline style.
- /// </summary>
- std::string to_string(font::underline_style style)
- {
- switch (style)
- {
- case font::underline_style::double_:
- return "double";
- case font::underline_style::double_accounting:
- return "doubleAccounting";
- case font::underline_style::single:
- return "single";
- case font::underline_style::single_accounting:
- return "singleAccounting";
- case font::underline_style::none:
- return "none";
- }
- default_case("single");
- }
- /// <summary>
- /// Returns the string representation of the relationship type.
- /// </summary>
- std::string to_string(relationship_type t)
- {
- switch (t)
- {
- case relationship_type::office_document:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument";
- case relationship_type::thumbnail:
- return "http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail";
- case relationship_type::calculation_chain:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain";
- case relationship_type::extended_properties:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";
- case relationship_type::core_properties:
- return "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";
- case relationship_type::worksheet:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet";
- case relationship_type::shared_string_table:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";
- case relationship_type::stylesheet:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";
- case relationship_type::theme:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";
- case relationship_type::hyperlink:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink";
- case relationship_type::chartsheet:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet";
- case relationship_type::comments:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments";
- case relationship_type::vml_drawing:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing";
- case relationship_type::custom_properties:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";
- case relationship_type::printer_settings:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings";
- case relationship_type::connections:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/connections";
- case relationship_type::custom_property:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customProperty";
- case relationship_type::custom_xml_mappings:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXmlMappings";
- case relationship_type::dialogsheet:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/dialogsheet";
- case relationship_type::drawings:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing";
- case relationship_type::external_workbook_references:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/externalLinkPath";
- case relationship_type::pivot_table:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotTable";
- case relationship_type::pivot_table_cache_definition:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheDefinition";
- case relationship_type::pivot_table_cache_records:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/pivotCacheRecords";
- case relationship_type::query_table:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/queryTable";
- case relationship_type::shared_workbook_revision_headers:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/revisionHeaders";
- case relationship_type::shared_workbook:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedWorkbook";
- case relationship_type::revision_log:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/revisionLog";
- case relationship_type::shared_workbook_user_data:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/usernames";
- case relationship_type::single_cell_table_definitions:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/tableSingleCells";
- case relationship_type::table_definition:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/table";
- case relationship_type::volatile_dependencies:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/volatileDependencies";
- case relationship_type::vbaproject:
- return "http://schemas.microsoft.com/office/2006/relationships/vbaProject";
- case relationship_type::image:
- return "http://schemas.openxmlformats.org/officeDocument/2006/relationships/image";
- case relationship_type::unknown:
- return "unknown";
- }
- default_case("unknown");
- }
- std::string to_string(pattern_fill_type fill_type)
- {
- switch (fill_type)
- {
- case pattern_fill_type::darkdown:
- return "darkdown";
- case pattern_fill_type::darkgray:
- return "darkgray";
- case pattern_fill_type::darkgrid:
- return "darkgrid";
- case pattern_fill_type::darkhorizontal:
- return "darkhorizontal";
- case pattern_fill_type::darktrellis:
- return "darkhorizontal";
- case pattern_fill_type::darkup:
- return "darkup";
- case pattern_fill_type::darkvertical:
- return "darkvertical";
- case pattern_fill_type::gray0625:
- return "gray0625";
- case pattern_fill_type::gray125:
- return "gray125";
- case pattern_fill_type::lightdown:
- return "lightdown";
- case pattern_fill_type::lightgray:
- return "lightgray";
- case pattern_fill_type::lightgrid:
- return "lightgrid";
- case pattern_fill_type::lighthorizontal:
- return "lighthorizontal";
- case pattern_fill_type::lighttrellis:
- return "lighttrellis";
- case pattern_fill_type::lightup:
- return "lightup";
- case pattern_fill_type::lightvertical:
- return "lightvertical";
- case pattern_fill_type::mediumgray:
- return "mediumgray";
- case pattern_fill_type::solid:
- return "solid";
- case pattern_fill_type::none:
- return "none";
- }
- default_case("none");
- }
- std::string to_string(gradient_fill_type fill_type)
- {
- switch (fill_type)
- {
- case gradient_fill_type::linear:
- return "linear";
- case gradient_fill_type::path:
- return "path";
- }
- default_case("linear");
- }
- std::string to_string(border_style style)
- {
- switch (style)
- {
- case border_style::dashdot:
- return "dashDot";
- case border_style::dashdotdot:
- return "dashDotDot";
- case border_style::dashed:
- return "dashed";
- case border_style::dotted:
- return "dotted";
- case border_style::double_:
- return "double";
- case border_style::hair:
- return "hair";
- case border_style::medium:
- return "medium";
- case border_style::mediumdashdot:
- return "mediumDashDot";
- case border_style::mediumdashdotdot:
- return "mediumDashDotDot";
- case border_style::mediumdashed:
- return "mediumDashed";
- case border_style::slantdashdot:
- return "slantDashDot";
- case border_style::thick:
- return "thick";
- case border_style::thin:
- return "thin";
- case border_style::none:
- return "none";
- }
- default_case("none");
- }
- std::string to_string(vertical_alignment alignment)
- {
- switch (alignment)
- {
- case vertical_alignment::top:
- return "top";
- case vertical_alignment::center:
- return "center";
- case vertical_alignment::bottom:
- return "bottom";
- case vertical_alignment::justify:
- return "justify";
- case vertical_alignment::distributed:
- return "distributed";
- }
- default_case("top");
- }
- std::string to_string(horizontal_alignment alignment)
- {
- switch (alignment)
- {
- case horizontal_alignment::general:
- return "general";
- case horizontal_alignment::left:
- return "left";
- case horizontal_alignment::center:
- return "center";
- case horizontal_alignment::right:
- return "right";
- case horizontal_alignment::fill:
- return "fill";
- case horizontal_alignment::justify:
- return "justify";
- case horizontal_alignment::center_continuous:
- return "centerContinuous";
- case horizontal_alignment::distributed:
- return "distributed";
- }
- default_case("general");
- }
- std::string to_string(border_side side)
- {
- switch (side)
- {
- case border_side::bottom:
- return "bottom";
- case border_side::top:
- return "top";
- case border_side::start:
- return "left";
- case border_side::end:
- return "right";
- case border_side::horizontal:
- return "horizontal";
- case border_side::vertical:
- return "vertical";
- case border_side::diagonal:
- return "diagonal";
- }
- default_case("top");
- }
- std::string to_string(core_property prop)
- {
- switch (prop)
- {
- case core_property::category:
- return "category";
- case core_property::content_status:
- return "contentStatus";
- case core_property::created:
- return "created";
- case core_property::creator:
- return "creator";
- case core_property::description:
- return "description";
- case core_property::identifier:
- return "identifier";
- case core_property::keywords:
- return "keywords";
- case core_property::language:
- return "language";
- case core_property::last_modified_by:
- return "lastModifiedBy";
- case core_property::last_printed:
- return "lastPrinted";
- case core_property::modified:
- return "modified";
- case core_property::revision:
- return "revision";
- case core_property::subject:
- return "subject";
- case core_property::title:
- return "title";
- case core_property::version:
- return "version";
- }
- default_case("category");
- }
- std::string to_string(extended_property prop)
- {
- switch (prop)
- {
- case extended_property::application:
- return "Application";
- case extended_property::app_version:
- return "AppVersion";
- case extended_property::characters:
- return "Characters";
- case extended_property::characters_with_spaces:
- return "CharactersWithSpaces";
- case extended_property::company:
- return "Company";
- case extended_property::dig_sig:
- return "DigSig";
- case extended_property::doc_security:
- return "DocSecurity";
- case extended_property::heading_pairs:
- return "HeadingPairs";
- case extended_property::hidden_slides:
- return "HiddenSlides";
- case extended_property::hyperlinks_changed:
- return "HyperlinksChanged";
- case extended_property::hyperlink_base:
- return "HyperlinkBase";
- case extended_property::h_links:
- return "HLinks";
- case extended_property::lines:
- return "Lines";
- case extended_property::links_up_to_date:
- return "LinksUpToDate";
- case extended_property::manager:
- return "Manager";
- case extended_property::m_m_clips:
- return "MMClips";
- case extended_property::notes:
- return "Notes";
- case extended_property::pages:
- return "Pages";
- case extended_property::paragraphs:
- return "Paragraphs";
- case extended_property::presentation_format:
- return "PresentationFormat";
- case extended_property::scale_crop:
- return "ScaleCrop";
- case extended_property::shared_doc:
- return "SharedDoc";
- case extended_property::slides:
- return "Slides";
- case extended_property::template_:
- return "Template";
- case extended_property::titles_of_parts:
- return "TitlesOfParts";
- case extended_property::total_time:
- return "TotalTime";
- case extended_property::words:
- return "Words";
- }
- default_case("Application");
- }
- std::string to_string(variant::type type)
- {
- switch (type)
- {
- case variant::type::boolean:
- return "bool";
- case variant::type::date:
- return "date";
- case variant::type::i4:
- return "i4";
- case variant::type::lpstr:
- return "lpstr";
- case variant::type::null:
- return "null";
- case variant::type::vector:
- return "vector";
- }
- default_case("null");
- }
- std::string to_string(pane_corner corner)
- {
- switch (corner)
- {
- case pane_corner::bottom_left:
- return "bottomLeft";
- case pane_corner::bottom_right:
- return "bottomRight";
- case pane_corner::top_left:
- return "topLeft";
- case pane_corner::top_right:
- return "topRight";
- }
- default_case("topLeft");
- }
- std::string to_string(target_mode mode)
- {
- switch (mode)
- {
- case target_mode::external:
- return "External";
- case target_mode::internal:
- return "Internal";
- }
- default_case("Internal");
- }
- std::string to_string(pane_state state)
- {
- switch (state)
- {
- case pane_state::frozen:
- return "frozen";
- case pane_state::frozen_split:
- return "frozenSplit";
- case pane_state::split:
- return "split";
- }
- default_case("frozen");
- }
- std::string to_string(orientation orient)
- {
- switch (orient)
- {
- case xlnt::orientation::default_orientation:
- return "default";
- case xlnt::orientation::landscape:
- return "landscape";
- case xlnt::orientation::portrait:
- return "portrait";
- }
- default_case("default");
- }
- } // namespace detail
- } // namespace xlnt
|