Показать диалоговое окно сохранения для загрузки CSV-файла

#asp.net #csv

#asp.net #csv

Вопрос:

Мой CSV-код:—

 public void CreateCSVFile(DataTable dt, string strFilePath)
{
    StreamWriter sw = new StreamWriter(strFilePath, 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);
    // Now write all the rows.
    foreach (DataRow dr in dt.Rows)
    {
        for (int i = 0; i < iColCount; i  )
        {
            if (!Convert.IsDBNull(dr[i]))
            {
                string email = dr[i].ToString();
                bool result = IsEmail(email);
                if (result == true)
                    sw.Write(dr[i].ToString());
            }
            //if (i < iColCount - 1)
            //{
            //    sw.Write(" , ");
            //}
        }

        sw.Write(sw.NewLine);
    }
    sw.Close();

}
  

и в grid_RowCommand() делаем это…

 if (e.CommandName == "cmdCSV")
    {
        DataTable dtCSV = new DataTable();
        dtCSV = ob.TotalRecord(TableField, TableName);

        CreateCSVFile(dtCSV, "c:\csv file/csv " TableName ".csv");
        lblMsg.Visible = true;
        lblMsg.Text = "CSV File Successfully created in C.";
        lblMsg.ForeColor = Color.Green;
    }
  

Здесь CreateCSVFile(dtCSV, "c:\csv file/csv " TableName ".csv"); загрузите CSV-файл по умолчанию на c. Здесь я хочу загрузить CSV-файл в том месте, где я хочу сохранить.Как я могу это сделать??Пожалуйста, направьте меня.

Заранее спасибо

Комментарии:

1. Я просто надеюсь, что у вас никогда не будет «,» в ваших данных.

2. @Pleun: да … у меня нет ‘,’..

Ответ №1:

Попробуйте это

 Response.ContentType = "application/ms-excel";
Response.AddHeader("content-disposition", "attachment; filename=XYZ.csv");
string newpath2 = System.Web.HttpContext.Current.Server.MapPath("~//downloadfile//XYZ.csv");
FileStream sourceFile = new FileStream(newpath2, FileMode.Open);
long FileSize;
FileSize = sourceFile.Length;
byte[] getContent = new byte[(int)FileSize];
sourceFile.Read(getContent, 0, (int)sourceFile.Length);
sourceFile.Close();
  

или

 string filePath = Server.MapPath("~/files/myFileName.csv");
    System.IO.FileInfo fileInfo = new System.IO.FileInfo(filePath);
    Response.ContentType = "application/octet-stream";
    Response.AddHeader("Content-Disposition", string.Format("attachment;filename=\"{0}\"", filePath));
    Response.AddHeader("Content-Length", fileInfo.Length.ToString());
    Response.WriteFile(filePath);
    Response.End();