Great!
I think the message with "ZIP" is a (small) bug or limitation. The Wolfram Language downloads your XLSX file to a temporary local file and then tries to heuristically determine what sort of file it is. However this temporary local file does not have the .xlsx extension and the FileFormat function which tries to determine the type of file then thinks it is a ZIP file (which it might actually be, I am not sure).
You can see this by running Trace on the import and evaluating the specific FileFormat command:
heldexpression = Block[{DeleteFile = Identity},
Trace[
Import[CloudObject["cities.xlsx"], {"Data", 1}],
FileFormat[___]]] // Flatten // First
This outputs something like this:
FileFormat["C:\\Users\\arnoudb.WRI\\AppData\\Local\\Temp\\m-55e25b16-9220-4769-8791-6e8e2b8a4d19"]
And then if you use ReleaseHold to remove the HoldForm wrapper, you get:
heldexpression // ReleaseHold
Which returns "ZIP".