Click here to Skip to main content
11,487,406 members (72,338 online)
Click here to Skip to main content

RESX to XLS conversion for multi-language support

, 25 Jul 2007 97.1K 7.2K 60
Rate this:
Please Sign up or sign in to vote.
Easily convert your RESX projects files to Excel and back to localized RESX

Resx2Xls ScreenShot


Do you need to localize your RESX files and don't want to open them one file at a time, clean them of unused keys, localize them etc., etc.? Then Resx2Xls is for you.

  1. Open Resx2xls. Click on "Create new Excel document...," select your Project Root and follow the wizard. Done!!
  2. Fill your Excel file with your localized key values or just send it to your translator.
  3. Now, do you want to create the localized RESX files from the filled Excel workbook? Open Resx2xls, click on "Generate resx files...," select your Excel file, click Next and then click Finish. Done!!
  4. Have you updated your project after your resource files were modified/added/removed/updated? No problem. Open Resx2xls, click on "Update your Excel document...," click Next, select your Project Root and Excel document and click Finish. Done!!

Thanks go to Manish Ranjan Kumar and his WizardBase control. It has helped me to give the application a more decent style.


I was frustrated with copying my project resource files created in VS 2005, cleaning them of unused keys and then localizing them one file at a time. This tool should help you to just point and click at your project and obtain an Excel file filled with all of the strings of ALL of your resource files. After compiling the XLS with the translations, I wanted to convert all of the keys back into localized RESX files. I hope this helps!

Points of interest

I've had some problems loading resources with the ResxResourceReader class. I've noticed that if you have an image resource stored in the resource file, the path of the image in the XML document is relative to the document itself, not the project. Opening from another directory, i.e. Resx2xls bin, I get a "cannot parse" path exception. This was solved by setting the BasePath property of the resource reader with the path to the RESX file.


  • 25-7-2007: Article edited and posted to the main CodeProject article base
  • 5-7-2007: Added wizard
  • 4-7-2007: First release


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

Marco Roello
Web Developer
Italy Italy
No Biography provided

Comments and Discussions

GeneralNeed to suppress Excel numeric formatting Pin
kirtlander27-Feb-10 7:58
memberkirtlander27-Feb-10 7:58 
This utility saved me a ton of work. Thanks a bunch. I really appreciate you sharing this with the community.

One item I needed to do to prevent numeric values with leading zeros and booleans from being interpreted as their native types in Excel was to force the entire sheet to be formatted as Text. With this set, everything comes in as a literal and nothing is altered.

Here's what I added to DataSetToXls(ResxData rd, string fileName) after the instantiation of "sheet" but before any values are written to the cells:

// format sheet as Text so that numeric, date or boolean values aren't
// interpreted as their native types and subsequently altered
sheet.get_Range("A1", "A1").EntireColumn.EntireRow.NumberFormat = "@";

Also, I contacted Patrick Mortara for his additions that pull in existing translations - works nice. This allows me to maintain translations in the RESX files, yet enables me to extract existing translations whenever maintenance is done on the app that adds new strings. I'm not really that keen on having a spreadsheet be the master translation source. It becomes just another source file to maintain, in this case needlessly.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.150520.1 | Last Updated 25 Jul 2007
Article Copyright 2007 by Marco Roello
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid