{"id":13591907,"url":"https://github.com/fernandreu/office-ribbonx-editor","last_synced_at":"2026-01-16T22:31:51.065Z","repository":{"id":38359655,"uuid":"168035848","full_name":"fernandreu/office-ribbonx-editor","owner":"fernandreu","description":"An overhauled fork of the original Custom UI Editor for Microsoft Office, built with WPF","archived":false,"fork":false,"pushed_at":"2025-11-16T15:39:41.000Z","size":3984,"stargazers_count":631,"open_issues_count":34,"forks_count":122,"subscribers_count":36,"default_branch":"master","last_synced_at":"2025-11-16T16:22:08.076Z","etag":null,"topics":["custom-ui","excel","office","powerpoint","ribbon","ribbonx","standalone","word","wpf"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fernandreu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-01-28T20:55:20.000Z","updated_at":"2025-11-16T15:22:48.000Z","dependencies_parsed_at":"2024-01-13T16:21:08.402Z","dependency_job_id":"6f674b82-abb7-4d0f-8b06-fac35a65d5e1","html_url":"https://github.com/fernandreu/office-ribbonx-editor","commit_stats":null,"previous_names":[],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/fernandreu/office-ribbonx-editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandreu%2Foffice-ribbonx-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandreu%2Foffice-ribbonx-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandreu%2Foffice-ribbonx-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandreu%2Foffice-ribbonx-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fernandreu","download_url":"https://codeload.github.com/fernandreu/office-ribbonx-editor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fernandreu%2Foffice-ribbonx-editor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28485363,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["custom-ui","excel","office","powerpoint","ribbon","ribbonx","standalone","word","wpf"],"created_at":"2024-08-01T16:01:03.570Z","updated_at":"2026-01-16T22:31:51.055Z","avatar_url":"https://github.com/fernandreu.png","language":"C#","funding_links":[],"categories":["C#","C\\#","C# #"],"sub_categories":[],"readme":"\n# Office RibbonX Editor\n\n[![Downloads](https://img.shields.io/github/downloads/fernandreu/office-ribbonx-editor/total.svg?style=popout)](https://github.com/fernandreu/office-ribbonx-editor/releases)\n[![Release Version](https://img.shields.io/github/release/fernandreu/office-ribbonx-editor)](https://github.com/fernandreu/office-ribbonx-editor/releases/latest)\n[![Pre-release Version](https://img.shields.io/github/v/release/fernandreu/office-ribbonx-editor?include_prereleases\u0026label=pre-release)](https://github.com/fernandreu/office-ribbonx-editor/releases)\n[![.NET](https://img.shields.io/badge/.NET-%3E%3D%2010.0.0-informational)](https://dotnet.microsoft.com/download)\n[![Build Status](https://dev.azure.com/fernandreu-public/OfficeRibbonXEditor/_apis/build/status/CI%20Pipeline?branchName=master\u0026stageName=Build)](https://dev.azure.com/fernandreu-public/OfficeRibbonXEditor/_build/latest?definitionId=1\u0026branchName=master)\n[![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=fernandreu_office-ribbonx-editor\u0026metric=alert_status)](https://sonarcloud.io/dashboard?id=fernandreu_office-ribbonx-editor)\n\nThe Office RibbonX Editor is a standalone tool to edit the Custom UI part of Office open document file format. \nIt contains both Office 2007 and Office 2010 custom UI schemas.\n\nThe Office 2010 custom UI schema is the latest schema and it's still being used in the latest versions of Office including\nOffice 2019, Office 2021 and Office 365.\n\nTo learn more about how to use these identifiers to customize the Office ribbon, backstage, and context menus visit:\n - [Change the Ribbon in Excel 2007-2016](https://www.rondebruin.nl/win/s2/win001.htm)\n - [Customizing the Office Fluent Ribbon for Developers](https://msdn.microsoft.com/en-us/library/aa338202(v=office.14).aspx)\n - [Introduction to the Office Backstage View for Developers](https://msdn.microsoft.com/en-us/library/ee691833(office.14).aspx)\n - [Office Fluent User Interface Control Identifiers](https://github.com/OfficeDev/office-fluent-ui-command-identifiers)\n\n\n## Improvements\n\nThis GitHub project is a fork of [Custom UI Editor for Microsoft Office](https://github.com/OfficeDev/office-custom-ui-editor). Built\non Windows Forms, the original editor by Microsoft is useful on its own, but it has some limitations. Rather than trying to address\nthose limitations by performing small contributions to the original project, this repo offers a complete redesign of the project in\nWindows Presentation Foundation (WPF).\n\nFeatures of this overhauled editor include:\n- [ScintillaNET](https://github.com/jacobslusser/ScintillaNET) (via [SctintillaNET.WPF](https://github.com/Stumpii/ScintillaNET.WPF/tree/master/ScintillaNET.WPF)) as text editor, with seamless syntax highlighting\n- The TreeView allows you to have more than one file open, easily switching between different customUI files (for example,\nfor copying code from one file to another)\n- A multi-tab layout, allowing to have multiple files open simultaneously (including icon previews)\n- List of recently opened files showing up on the file menu (thanks to \n[RecentFileList](https://www.codeproject.com/Articles/23731/RecentFileList-a-WPF-MRU))\n- A `Reload on Save` option that avoids losing any external changes (for more info, see [the section below](#how-does-the-reload-on-save-option-work))\n- Possibility of customizing some aspects of the editor such as font size and color\n- Plus all the features of the original Windows Forms project\n\n![Screenshot](docs/Screenshot.png)\n\n\n## Download / Build status\n\nTo download the latest release, go to the following link:\n\nhttps://github.com/fernandreu/office-ribbonx-editor/releases/latest\n\nTo download the latest pre-release, go to the full list of releases on GitHub:\n\nhttps://github.com/fernandreu/office-ribbonx-editor/releases\n\n\u003e **Note:** From v2.0 onwards, .NET Framework is no longer supported. The latest .NET Framework version is v1.9 and\n\u003e can be found [here](https://github.com/fernandreu/office-ribbonx-editor/releases/tag/v1.9.0).\n\n\n## How does the `Reload on Save` option work?\n\nAn Office 2007+ file (`.xlsm`, `.xlam`, `.pptm`, `.docx`, etc.) is nothing more than a `.zip` file with a\ncustom extension. When the Office RibbonX Editor opens one of those files, it unzips it into a temporary\nlocation first, and then it shows the content from there. To save the file, it will apply any changes to\nthe unzipped files, and zip everything back to its original location.\n\nThe way you would use the original Custom UI Editor is similar to the following:\n\n1.\tIf the file you want to edit is open in Excel, close it first\n2.\tOpen that file in the Custom UI Editor\n3.\tEdit the xml files, icons, etc.\n4.\tSave the file in the Custom UI Editor (and close it if you wish)\n5.\tOpen the file back in Excel, and enjoy the changes you just made\n\nHowever, **what would happen if you forget Step 1** and Excel has the same file open when you are using the\ntool? Your workflow could then look like this instead:\n\n1.\tOpen that file in the Custom UI Editor\n2.\tEdit xml files, icons, etc.\n3.\tYou realise you had the file open in Excel, so you close it there first\n    - But you also had unsaved changes in Excel, so you save the file before closing it\n4.\tSave the file in the Custom UI Editor (and close it if you wish)\n    -\t**Remember:** all this time since Step 1, the Custom UI Editor was looking at a temporary unzipped copy\n    of the Excel file that did not include the changes saved in Step 3!\n5.\tOpen the file back in Excel. The changes you made in the Custom UI Editor (Step 2) are there, but the ones\nyou did in Excel (Step 3) have disappeared\n\n**The `Reload on Save` button adds an extra step to the process as a safety precaution in this scenario.** In\nessence, Step 4 will no longer use the temporary unzipped copy of the Excel file that was generated in Step 1,\nbut will generate a new one instead. As a consequence, any external changes you might have done in the meantime\n(i.e. Step 3) will no longer get lost. If you did not make any external changes, the `Reload on Save` button\nwon’t have any noticeable impact for you.\n\n\n## Code Signing\n\nThe tool is no longer being signed using a certificate from a trusted root certification authority. Instead, each\nbuild now uses a temporary, unique code signing certificate. Those will be signed using the following self-signed\ncertificate:\n\n- Subject: `github.com/fernandreu`\n- Thumbprint: `62530bc980ec95d70a9a0abf931a4c28877ef4c6`\n\nThis will give issues with Microsoft SmartScreen, but you should be able to skip any warnings. If you are unsure if\nyou should skip those warnings, there are a couple of things you could check:\n\n- You can verify that the installer / binaries have been signed with a certificate whose root certificate matches the\n  details above. If some bundled dlls were already signed (e.g. official Microsoft libraries), their original\n  signatures will be kept\n- The details of the temporary code signing certificates will also be made available for each build / release (just\n  the public ones, such as the thumbprint or the public key). Hence, you can also check that the certificate used for\n  the binaries / installer matches those details\n\nFor more information, see [#185](https://github.com/fernandreu/office-ribbonx-editor/issues/185).\n\n\n## Do you want to see the tool in your language?\n\nAny help improving existing translations or adding new ones is welcome. I will add your names to a list of\nacknowledgments, either in this readme or in the About section of the tool itself.\n\n### Improving an existing translation\n\nIf you get stuck in any step, feel free to [create an issue](https://github.com/fernandreu/office-ribbonx-editor/issues/new)\nand I will assist you.\n\n1. Find the file you want to edit on this GitHub project\n    1. All translations are `Strings.xyz.resx` files stored in [src/OfficeRibbonXEditor/Resources](https://github.com/fernandreu/office-ribbonx-editor/tree/master/src/OfficeRibbonXEditor/Resources)\n    2. The `xyz` part is what indicates the language contained in the file\n    3. For example, the Spanish translation is stored in the `Strings.es.resx` file [here](https://github.com/fernandreu/office-ribbonx-editor/blob/master/src/OfficeRibbonXEditor/Resources/Strings.es.resx)\n2. Click on the `Edit` button at the top-right corner\n    1. This might trigger a fork of this project under your GitHub account (otherwise, it will occur when saving any changes)\n3. Make any necessary changes\n    1. The `\u003cdata\u003e` tags are essentially the string resources throughout the application\n    2. Their `name` attribute is how they are being identified internally. This might provide some hints about their intended use\n    3. Otherwise, there might also be a child `\u003ccomment\u003e` tag providing more details about a particular resource\n    4. Only the child `\u003cvalue\u003e` tags should need modifications\n4. Save the changes at the bottom\n    1. This should trigger a commit of the file in your forked repository, and perhaps a pull request to this\n      repository too\n    2. If the pull request does not occur automatically, you might see some buttons either in your fork or here\n      to do so\n\n### Creating a translation for a new language\n\nThese steps are recommended for people that are already a bit familiar with the Git / GitHub workflow. If this \nis not your case, please [create an issue](https://github.com/fernandreu/office-ribbonx-editor/issues/new)\ninstead. I will then generate a template myself, so you will be able to follow the \n[previous steps](#improving-an-existing-translation) instead of these ones.\n\n1. Create a copy of the `Strings.resx` file [here](https://github.com/fernandreu/office-ribbonx-editor/blob/master/src/OfficeRibbonXEditor/Resources/Strings.resx), which contains the default English language\n    1. If you want, you can also create the copy from an existing translation (e.g. `Strings.es.resx` for Spanish [here](https://github.com/fernandreu/office-ribbonx-editor/blob/master/src/OfficeRibbonXEditor/Resources/Strings.es.resx))\n2. Name the copy `Strings.xyz.resx`, with `xyz` being your language tag\n    1. For a list of available language tags, see the table in [this page](https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/a9eac961-e77d-41a6-90a5-ce1a8b0cdb9c)\n    2. There is no need to specify the country in the language tag as well (i.e. `de`, `pt`, `ru`, etc. is enough)\n3. Put the file in the same [src/OfficeRibbonXEditor/Resources](https://github.com/fernandreu/office-ribbonx-editor/tree/master/src/OfficeRibbonXEditor/Resources)\n  folder where the original file was\n4. Make any necessary changes to this file\n    1. The `\u003cdata\u003e` tags are essentially the string resources throughout the application\n    2. Their `name` attribute is how they are being identified internally. This might provide some hints about their intended use\n    3. Otherwise, there might also be a child `\u003ccomment\u003e` tag providing more details about a particular resource\n    4. Only the child `\u003cvalue\u003e` tags should need modifications\n5. Modify the `LanguageChoice` class [here](https://github.com/fernandreu/office-ribbonx-editor/blob/master/src/OfficeRibbonXEditor/Helpers/LanguageChoice.cs)\n  to add your new language into the `All` collection\n\nIt might be possible to perform all these steps directly in your GitHub fork via several commits. Otherwise,\nyou might need to have at least Git installed. Visual Studio should not be necessary unless you want to see\nhow your translation looks (you will be able to see it from the build artifacts of your pull request too).\n\n### Special thanks to all translators so far\n\n- Chinese: [bitaller](https://github.com/bitaller)\n- Dutch: [pplanch](https://github.com/pplanch)\n- French: [pplanch](https://github.com/pplanch)\n- German: [carpac](https://github.com/carpac), [Claythve](https://github.com/Claythve), [Mo-Gul](https://github.com/Mo-Gul)\n- Greek: [ManosPapadakis95](https://github.com/ManosPapadakis95)\n- Indonesian: [aliishaq-zz](https://github.com/aliishaq-zz)\n- Italian: [dprevato](https://github.com/dprevato)\n- Portuguese: [ALeXceL](https://github.com/Alexcel)\n- Turkish: [fatihmeh](https://github.com/fatihmeh)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandreu%2Foffice-ribbonx-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernandreu%2Foffice-ribbonx-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandreu%2Foffice-ribbonx-editor/lists"}