Ok so, how to deal with the contents of the Excel spreadsheet that may change from time to time, and which holds the full list of information about map book numbers, map page numbers, and PDF URLs. So, since this is a web page, that information is going to need to be http accessible, or readable by a web browser somehow.
If the number of map books is always going to be 1-N and the number of map pages is always going to be 1-999, and the URL paths to the PDFs are always going to follow some type of consistent naming pattern, like in my sample app above: "https://
But... if the URL paths to the PDFs don't follow that kind of pattern, then I'm assuming in your xlsx, there's a mapbook column, a map number column, and a column that holds the URL where that map page is. In which case converting the xlsx into a csv could be a way to go. Here is a sample that shows one way to read the csv. Then, instead of drawing the csv to the page (like that sample does), you could read it all into a two-dimensional array, then when the user chooses a map book and map number, you do a lookup in that array, pull the correct URL out of the array, and open the PDF in the window.
Tons of different ways to do this. That's just one.