Why, specifically can you not use oops? Anyway, simply calling provided methods and using provided classes is not object oriented programming. You'd be hard put nowadays to write anything remotely technical without having to access some classes.
You can use abap2xlsx (a collection of classes) which produces a zipped xml format Excel file. Then use CL_BCS and associated classes to send the file. Simple solution. Elegant, supportable. Plenty of material on here on how to use these.
Unless you can come up with a good reason why you cannot use classes and methods to fulfil the business requirement (which is what matters, not some obscure nonsensical internal politics), I will lock this thread. There is no point in reinventing the wheel.
Oh, and here's the kicker: it is not possible to generate excel files in background without usings abap2xlsx without either a) investing a huge amount on time building your own xlsx constructor or b) spending money on a third party product. Tell that to your managers. The business doesn't care what technology you use so long as you fulfill the functionality requirements.