You're not generating an Excel document, you're generating HTML, which some spreadsheet applications (like Excel) happen to be able to read. If you want to use actual spreadsheet-like functionality, you'll need to generate actual XLS or XLSX documents, possibly using a library like Apache POI.
I'm not sure it's possible to protect individual columns, though; I seem to recall that being a per-sheet (or even per-file) setting.