Isso anexará o resultado da consulta como um csv, basta alterá-lo para filename.xls se você preferir esse formato. Acho que o csv funciona melhor, com o Excel você pode receber um aviso dizendo que o arquivo está em um formato diferente do especificado pela extensão.
Também usei CHAR(9) ou TAB para o separador de resultados da consulta, você pode alterar isso para o que funcionar para você.
Eu também adicionei SET NOCOUNT ON à sua consulta, se você não tiver isso, você obterá (1000 linhas afetadas) (qualquer número de linhas que sua consulta retornar) no final do seu arquivo do Excel.
DECLARE
@tab char(1) = CHAR(9)
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'Adventure Works Administrator',
@recipients = '[email protected]',
@query = 'SET NOCOUNT ON
SELECT COUNT(*) FROM AdventureWorks2012.Production.WorkOrder
WHERE DueDate > ''2004-04-30''
AND DATEDIFF(dd, ''2004-04-30'', DueDate) < 2' ,
@subject = 'Work Order Count',
@attach_query_result_as_file = 1,
@query_attachment_filename='filename.csv',
@[email protected],
@query_result_no_padding=1