Vikas Hire Ответов: 2

Как сохранить файл excel в папке приложения?


привет,
Я трачу много времени на эту проблему, Можете ли вы ее решить?

Проблема в том, что я не могу сохранить файл в папке приложения.
ладно.
дайте знать, что я здесь делаю, я получаю таблицу данных из базы данных и конвертирую ее в файл excel. и этот файл excel я хочу сохранить в папке приложения.
ниже приведен мой код...
public void exportToExcel(string userAutoId)
    {
        DataTable dt = new DataTable();
        SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString);
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("getContacts", con);
        da.SelectCommand.CommandType = CommandType.StoredProcedure;
        da.SelectCommand.Parameters.AddWithValue("@userAutoId", userAutoId);
        //cmd.Parameters.Add("@retValue", System.Data.SqlDbType.VarChar).Direction = System.Data.ParameterDirection.ReturnValue; 
        da.Fill(dt);

        //Create a dummy GridView
        GridView GridView1 = new GridView();
        GridView1.AllowPaging = false;
        GridView1.DataSource = dt;
        GridView1.DataBind();

        Response.Clear();
        Response.Buffer = true;
        Response.AddHeader("content-disposition","attachment;filename=Contact_Details.xls");
        Response.Charset = "";
        Response.ContentType = "application/vnd.ms-excel";
        StringWriter sw = new StringWriter();
        HtmlTextWriter hw = new HtmlTextWriter(sw);

        for (int i = 0; i < GridView1.Rows.Count; i++)
        {
            //Apply text style to each Row
            GridView1.Rows[i].Attributes.Add("class", "textmode");
        }
        GridView1.RenderControl(hw);

        //style to format numbers to string
        string style = @"<style> .textmode { mso-number-format:\@; } </style>";
        //Response.Write("{\"success\":true,\"isSuccess\":true,\"fileName\":\"\"}");
        Response.Write(style);
        Response.Output.Write(sw.ToString());

        //Here I want to code for save file in application folder


        Response.Flush();
        Response.End();
    }


Что я уже пробовал:

Я пытаюсь сохранить файл excel в папке приложения.

[no name]

Трудно поверить, что вы загуглили свой "вопрос". В интернете должны быть тысячи примеров, демонстрирующих, как сохранять файлы на вашем сервере.

ZurdoDev

Это даст пользователю запрос на загрузку в браузере. Вы не можете сохранить их в определенной папке.

ZurdoDev

Вы хотите сохранить файл в папке сервера? Это просто.

Vikas Hire

да, я нашел решение этой проблемы. Просто двухстрочный код я вставляю в свой существующий код.

первая строка для получения пути к папке сервера, в которой я хочу сохранить свой файл..
вторая строка кода создает имя файла..
и третья строка кода сохраняет файл в папке.


string strPath = HostingEnvironment.ApplicationPhysicalPath + @ " TempFiles/";
строковое имя файла = Uid + "ContactList.xls";
Файл.WriteAllText(strPath + fileName, sw. ToString());

2 Ответов

Рейтинг:
4

Vikas Hire

Его можно решить, изменив какой-то код и какую-то новую строку кода


//style to format numbers to string
       string style = @"<style> .textmode { mso-number-format:\@; } </style>";
       Response.Write(style);
       string strPath = HostingEnvironment.ApplicationPhysicalPath + @"TempFiles/";
       string fileName = Uid + "ContactList.xls";
       File.WriteAllText(strPath + fileName, sw.ToString());
       Response.Clear();
       Response.Write("{\"success\":true,\"isSuccess\":true,\"fileName\":\"" + fileName + "\"}");

       //Response.Output.Write(sw.ToString());
       //Response.Flush();
       //Response.End();


Рейтинг:
1

F-ES Sitecore

Вы не можете писать файлы клиенту с сервера, хотите ли вы, чтобы веб-сайт записывал файлы на вашу машину?