2012-10-23 2 views
2

Я хотел бы экспортировать данные из SQL Server pull (обычно я использую SqlDataReader, но открыт для предложений) в файл Excel/CSV и имеет пользователя веб-приложения получить его как загрузку.Экспорт данных SQL Server в Excel в веб-приложении

Я бы хотел сделать этот стиль AJAX, так что щелчок по загрузке не вызовет перезагрузки/обратной передачи.

Кто-нибудь сделал это раньше или у вас есть идея о том, как?

+0

У вас возникнут проблемы с веб-приложением и Excel. Попробуйте этот ответ: http://stackoverflow.com/a/11559077/61339 – JeffO

+0

@JeffO Я в порядке с CSV. Я все еще не уверен, как работать с загрузкой на клике. – steventnorris

ответ

1

Я думаю, что этот механизм будет работать.

Есть кнопка HTML, которая вызывает функцию javascript при нажатии.

<input id="downloadbtn" type="button" value="Download" onclick="download();" /> 

Функция будет выглядеть примерно так:

var download = function() { 
    $.ajax({ 
    url: "datamaker.aspx", 
    context: document.body 
    }).done(function(data) { 
    // parse response data, get file path 
    var filepath = ParseDataToGetFilePath(data); 

    // open the csv file path in a new window (which will begin download) 
    window.open(filepath, '_blank'); 
    }); 

}; 

В ServerSide, "datamaker.aspx" должен подключиться к SQL Server, а также создать файл CSV. Создание CSV-файла так же просто, как создание любого другого файла с помощью streamwriter и запись «запятой» между полями. В конце этой страницы выведите имя файла либо в ответ xml, либо json.

 { filepath: \path\datafile.csv } 
Смежные вопросы