Я не совсем понимаю код (не свободно владею asp.net), но скажу, что если вы хотите использовать текст в листе Excel, вам нужно определить целевую область как текст, прежде чем помещать данных там.
Если мое понимание кода верно, то это:
response.Write(style);
Должен быть до этого.
dgrExport.RenderControl(htmlWrite);
Редактировать: Возможно, альтернативное решение
Бит кода Google, который вы нашли, устанавливает формат ячеек как текст. По всей вероятности, вы хотите, чтобы Excel воспринимал дату как дату с форматом отображения MM / YYYY.
возможно, попробуйте заменить это:
string style = @"<style> .text { mso-number-format:\@; } </style> "
с
string style = @"<style> .text { mso-number-format:\mm/yyyy; } </style> "
Я не уверен, является ли / или \ escape-символом в ASP.net, поэтому точный snytax может отличаться. В формате Excel числовой формат @ означает текст, а мм / гггг - дату с требуемым форматом отображения.