How to Create an Excel Currency Converter for Revolut and Starling Rates
Question details
The user needs to build a currency comparison tool to calculate exchange rates, fees, and limits for Revolut and Starling, but cannot import the data because the websites use JavaScript dropdowns.

- Product
- Excel
- Device & OS
- not provided
- Scenario
- Building a custom currency converter and comparison tool in a spreadsheet to track daily exchange rates, ATM charges, and multi-day withdrawals.
- Observed behavior
- Power Query and Excel web queries fail to retrieve useful data, returning empty tables or unsupported browser errors, because the target websites load their rates dynamically via JavaScript rather than static HTML tables.
Before proceeding, review the Terms of Service for Revolut, Starling, or any financial website to ensure automated web scraping is permitted. If it is restricted, you will need to source your data from an approved static exchange-rate API.
Use a Static Exchange-Rate Table or Approved API
Since Excel's built-in Web Query cannot render dynamic JavaScript dropdowns, sourcing your data from a static table or an approved REST API is the most reliable method for building your converter.
Power Query excels at parsing static HTML tables, CSVs, and JSON feeds. By finding an alternative financial data provider that offers a clean API or a static HTML table, you can bypass the limitations of dynamic sites.
Find a reliable exchange rate source that provides a direct JSON/CSV API endpoint or a static HTML table of daily rates.
In Excel, navigate to the Data tab and click 'From Web'. Paste the URL of your chosen static table or API endpoint.
Select the relevant data record or table in the Navigator window and click 'Load' to bring the rates into your spreadsheet.
On a new worksheet, structure your calculator for fees and limits. Use XLOOKUP, VLOOKUP, or INDEX/MATCH to pull the imported rates into your formulas.

Extract Dynamic Data Using Python Web Scraping
If you absolutely must extract rates directly from a dynamic page featuring JavaScript dropdowns, use code-based web scraping tools like Python with Selenium.
Create Your Currency Converter Easily with WPS Office
WPS Spreadsheets provides robust data import capabilities and full support for advanced lookup functions like XLOOKUP. You can easily import static exchange rate CSVs or web data to build a powerful currency comparison tool completely for free.
- 1. Open a new spreadsheet: Launch WPS Spreadsheets and create a new blank workbook to serve as your currency converter tool.
- 2. Import your rate data: Go to the Data tab, select 'Import Data', and load your daily exchange rate CSV or static web source.
- 3. Design the calculator interface: On a separate sheet, set up your input fields for base currency amounts, ATM fees, and withdrawal tracking.
- 4. Connect the data with formulas: Use the XLOOKUP or VLOOKUP function to automatically fetch the correct exchange rate from your imported data based on the user's selected currency.

Frequently Asked Questions
Why does Power Query show an empty table for dynamic websites?
Power Query natively extracts the raw HTML code delivered by the server. If a website loads its data dynamically using JavaScript after the page loads, Power Query cannot "see" or render those elements, resulting in missing or empty tables.
Can I connect an API directly to my spreadsheet?
Yes. You can use the 'Data > From Web' feature to connect to REST APIs that output JSON or XML. Power Query will parse the API response and convert it into a structured table.
Are there any free APIs available for currency exchange rates?
Yes, there are several free and freemium APIs like ExchangeRate-API, Open Exchange Rates, or Frankfurter that provide reliable daily exchange rates perfect for a custom converter.
How do I track withdrawal limits over multiple days in my spreadsheet?
You can track multi-day withdrawals by importing your transaction history alongside daily rates, standardizing all amounts into a base currency, and using SUMIFS formulas to calculate the total withdrawn over a specific rolling time period.




