ASP.NET MVC : CSV 파일을 작성해서 다운로드 하기
ASP.NET MVC에서 CSV 파일을 다운로드 할 경우의 샘플 코드입니다.
test.cshtml
<button class="btnCsvDownloadList" type="button">CSVダウンロード</button>
<script src="~/Scripts/pages/test.js"></script>
test.js
$('.btnCsvDownloadList').click(function () {
var documentUrl = document.URL;
var baseUrl = documentUrl.substring(0, documentUrl.indexOf('currentPageName'));
// baseUrl : 호출할 Controller까지의 url을 추출한 내용. url이 가변성일 경우를 전제로 한다.
var mySiteUrl = 'http://mysite.com'
// mySiteUrl : 고정 url이 있을 경우엔 고정치를 설정.
location.href = mySiteUrl + '/CsvDownloadList';
});
TestController.cs
[Route("CsvDownloadList")]
public ActionResult CsvDownloadList(string areaType, string partner)
{
var fileName = string.Format("{0:yyyyMMdd}.csv", DateTime.Now);
return File(logic.GetCsvData(), "text/csv", fileName);
}
TestLogic.cs
public byte[] GetCsvData()
{
var stream = new MemoryStream();
var csvWriter = new StreamWriter(stream, Encoding.GetEncoding("shift-jis"));
csvWriter.WriteLine(String.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}",
"1",
"이름",
"별명",
"012-3456-7890",
"주소",
"0",
"내용1",
"내용2",
"내용3"));
csvWriter.Flush();
return stream.ToArray();
}