OK, the code you posted has nothing to do with how the client prints the Excel sheet. That code is just setting up the content headers, not the content, your Excel workbook, itself.
But, typically, there's really nothing you can do on the server to generate a sheet that's guaranteed to print on one sheet on the client side. You have no way of knowing how big the paper is on the client so no way of determining how many columns are going to fit.
About all you can do is the same thing you can do in print settings of Excel, "Fit to sheets". In Excel 2016, you get the options of "Fit Sheet on One Page", or "Fit all Columns on One Page", "Fit all Rows on One Page", and so on.
In the OpenXML SDK used to generate an Excel workbook, you use the PageSetup Class
] to set this up.
You ARE using the OpenXML SDK, or similar, aren't you?