A laptop with a docking station might be the answer. A docking station allows you to connect your laptop to things like keyboard, mouse, external monitor, printer, network, etc... by a single connection (USB port, generally). When using a laptop connected to the various peripherals mentioned above, using it is basically indistinguishable from using a desktop for most computing tasks.
I have been using a laptop with docking station as my main work computer for about 7 years now. I use all the typical Office apps (Word, Excel, PowerPoint, Visio, etc...) as well as compilers, VMs and various other software.
Something like this:
https://www.amazon.com/Plugable-Universal-Docking-Station-Ethernet/dp/B00ECDM78E