<script>
var csv = '1; foo\n2; bar\n3; русский';
var name = 'filename';
document.write(
'<a href="data:text/csv;charset=utf-8,',
encodeURIComponent('\ufeff' + csv), //utf8 bom(чтоб эксель понял кодировку) + строка
'" download="' + name + '.csv">' + name + '</a>');
</script>
В простом случае примерно так.
Если файл очень большой - смотреть в сторону Blob.
Если нужен IE - base64, а для старых и ActiveX.
Если надо можно и полноценный excel файл сделать, только весь формат вручную собирать придётся(хотя мож уже и есть какя библиотека на просторах тырнета).