내 CSV 내보내기를 통해 파일 저장 대화 상자를 표시하도록 고생했습니다. 파일을 저장하면 저장되지만 사용자가 저장할 수는 없습니다. 아무도 내가 코드에 문제가 생길 수 있음을 알 수 있습니까?파일 저장 대화 상자를 사용하여 CSV에 데이터 테이블 내보내기 - C#
string filename = Server.MapPath("~/download.csv");
StreamWriter sw = new StreamWriter(filename, false);
int iColCount = dt.Columns.Count;
for (int i = 0; i < iColCount; i++)
{
sw.Write(dt.Columns[i]);
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
foreach (DataRow dr in dt.Rows)
{
for (int i = 0; i < iColCount; i++)
{
if (!Convert.IsDBNull(dr[i]))
{
sw.Write(dr[i].ToString());
}
if (i < iColCount - 1)
{
sw.Write(",");
}
}
sw.Write(sw.NewLine);
}
sw.Close();
Response.Clear();
Response.ContentType = "application/csv";
Response.AddHeader("Content-Disposition", "attachment; filename=download.csv");
Response.WriteFile(filename);
Response.Flush();
Response.End();
대화 상자를 가져온 Content Disposition 행이 있다고 생각했지만 다른 작업이 필요할 수도 있습니다.
감사
는 파일을 저장해야합니까? 아니면 그냥 봉사하고 싶습니까? 또한 CSV 작성 알고리즘은 약하며 다중 행 또는 쉼표를 고려하지 않습니다. – banging
안녕하세요. 파일을 저장할 필요가 없습니다. 제공하기 만하면 행복합니다. 그것이 필요한 전부이기 때문에 골격은 기본입니다 - 내보낼 데이터는 매우 기본입니다 - 날짜, bool 또는 단일 단어 중 약 8 개의 열 –
쓰기/읽기에서 여분의 오버 헤드를 건너 뛸 수 있도록 Response.BinaryWrite를 살펴보십시오. 디스크로부터의 파일. – banging