ASP.NET MVC : CSV 파일을 작성해서 다운로드 하기

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();
}

Pie's Tech Note

생계형 개발자의 메모장

comments powered by Disqus

    rss facebook twitter github youtube mail spotify instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora