Member 12605293 Ответов: 1

Как сохранить экспортированный файл gridview в определенном пути с именем файла, показывающим данные и время


Привет
Я хочу сохранить экспортированный файл в определенном пути с определенным форматом имени, показывающим данные и время

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

protected void ExportToExcel(object sender, EventArgs e)
        {
            gvDetails.AllowPaging = false;
            this.bind();
            Response.ClearContent();
            
            Response.AddHeader("content-disposition", "attachment; filename=Name.xls");
            Response.ContentType = "application/excel";
            System.IO.StringWriter sw = new System.IO.StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            gvDetails.RenderControl(htw);
            Response.Write(sw.ToString());
            Response.End();

        }

Karthik_Mahalingam

в клиентской машине?

Member 12605293

Нет

Karthik_Mahalingam

а потом ? в чем же заключается собственно вопрос

Member 12605293

Мне нужно обновлять файл ежедневно, поэтому, если у меня есть дата и время, это полезно для меня

Karthik_Mahalingam

ваш вопрос заключается в том, чтобы экспортировать файл с определенной датой и временем?

Member 12605293

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

1 Ответов

Рейтинг:
9

Karthik_Mahalingam

string fileName = "Name";
            string dateFormat = "MMMddYYYY"; // the format which you want to display
            string outPutFileName =  string.Format("{0}_{1}.xls",fileName,DateTime.Now.ToString(dateFormat));
            Response.AddHeader("content-disposition", "attachment; filename=" + outPutFileName);


Member 12605293

Привет Картик
Спасибо :) Я сделал код, приведенный ниже, показывает время, а также

 protected void ExportToWord(object sender, EventArgs e)        {            gvDetails.AllowPaging = false;            this.bind();            Response.ClearContent();            string fileName = "Name";            string dateFormat = "MMddyyyy";            string timeformat = "HHmmss";            string outPutFileName = string.Format("{0}_{1}_{2}.xls", fileName, DateTime.Now.ToString(dateFormat), DateTime.Now.ToString(timeformat));            Response.AddHeader("content-disposition", "attachment; filename=" + outPutFileName);                        //Response.AddHeader("content-disposition", "attachment; filename=Name.doc");            Response.ContentType = "application/word";            System.IO.StringWriter sw = new System.IO.StringWriter();            HtmlTextWriter htw = new HtmlTextWriter(sw);            gvDetails.RenderControl(htw);            Response.Write(sw.ToString());            Response.End();        }

Member 12605293

Можно ли сохранить файл в определенном месте, сохранив его с помощью SaveFileDialog ???

Karthik_Mahalingam

Нет, вы не можете получить доступ к клиентской машине.
SaveFileDialog поддерживается в приложении windows

Member 12605293

ладно, Картик. Могу ли я это сделать в своей машине?

Karthik_Mahalingam

Я не уверен, попробуйте и дайте мне знать.

Member 12605293

Я не знаю Картик просто спрашиваю тебя можем ли мы выбрать наше собственное место сохранения вместо сохранения в загрузках

Karthik_Mahalingam

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

Member 12605293

Нет, Картик, я не спрашиваю о клиентской машине ,я знаю, что это невозможно, я спрашиваю о своей машине для моей цели(резервное копирование / история)

Member 12605293

Как и мы для загрузки файлов, он будет иметь опции просмотра.Но в моем случае я спрашиваю ,он должен запрашивать диалог path/Save as

Karthik_Mahalingam

по умолчанию он должен работать в IE

Karthik_Mahalingam

Нет, это не сработает

Member 12605293

:(

Member 12605293

Привет карти

Karthik_Mahalingam

Привет сэр

Member 12605293

У меня есть проблема с сохранением файла экспорта в обоих местах, в загрузках, а также в указанном месте

Karthik_Mahalingam

в чем же проблема?

Member 12605293

Проблема в том, что файлы сохраняются в загрузках и пути, который я дал в D drive..Я хочу только в D drive

Karthik_Mahalingam

является ли диск D частью виртуального каталога?

Member 12605293

да

Karthik_Mahalingam

тогда ты спасешь его.

Member 12605293

Привет Картик
Спасибо сэр это работает :)

Karthik_Mahalingam

вау

Member 12605293

Осталось только сохранить файл на локальном компьютере с помощью поля Сохранить как при нажатии кнопки

Karthik_Mahalingam

читать
https://weblog.west-wind.com/posts/2007/May/21/Downloading-a-File-with-a-Save-As-Dialog-in-ASPNET

Member 12605293

- Спасибо, Сэр.Есть ли какие-то варианты использования скриптов???

Karthik_Mahalingam

сделать некоторые погуглить на AJAX XHR может скачать файл, вы получите хоть какую-то зацепку.

Member 12605293

Привет Картик
Я попробовал следующий код, который выскакивает "открыть окно (обзор)".

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"> </script>
    <script>

        function openDialog() {

            var input = $(document.createElement('input'));
            input.attr("type", "file");
            input.trigger('click');
            return false;
        }

    </script>

 <a Id="btnExport" onclick="openDialog()" Text="Export To Excel" >test</a>

Member 12605293

Изменив атрибут, что мы можем сделать для Save As Box?

Karthik_Mahalingam

не уверен, делаете Лок и проверить

Member 12605293

Привет Картик

Karthik_Mahalingam

Привет сэр

Member 12605293

Я наткнулся на ссылку, которая показывает, как сделать Save As в веб-приложениях

http://www.c-sharpcorner.com/uploadfile/srseelam/file-download-with-save-as-dialog-box-from-browser/

Karthik_Mahalingam

хорошо

Member 12605293

Привет Картик

Karthik_Mahalingam

привет

Member 12605293

У меня есть странная ошибка в моем коде karthik...

Я разработал страницу просмотра сведений о лицах и имею данные из базы данных, записанные в хранимой процедуре..Он показывает текст как "0", который не был найден на моей странице дизайна после проверки tharow.Возможно ли это из базы данных

Karthik_Mahalingam

не уверенный.

Member 12605293

ОК Картик :)

Karthik_Mahalingam

:)

Member 12605293

Привет, Картик.

Karthik_Mahalingam

привет

Member 12605293

Привет, у меня есть сомнения в том, чтобы сделать ddlbox пустым или-select-initially on postback вместо того, чтобы сначала показывать значения

if (!IsPostBack)
        {
            for (int month = 1; month <= 12; month++)
            {
                ddlMonths.Items.Add(new ListItem(month.ToString().PadLeft(2, '0'), month.ToString().PadLeft(2, '0')));
            }
            int year = (System.DateTime.Now.Year);
            for (int intCount = year; intCount >= 1980; intCount--)
            {
                ddlyear.Items.Add(intCount.ToString());
            }
        }



   <td>Month
                                            </td>
                                            <td>
                                                <asp:DropDownList ID = "ddlMonths" runat="server"></asp:DropDownList>

                                                <%--<asp:TextBox ID="txtmonth" runat="server"></asp:TextBox>--%>
                                            </td>
                                            <td>Year
                                            </td>
                                            <td>
                                                <%--<asp:TextBox ID="txtyear" runat="server"></asp:TextBox>--%>
                                                <asp:DropDownList ID="ddlyear" runat="server"></asp:DropDownList>
                                            </td>

Karthik_Mahalingam

что это

Member 12605293

Привет,
Два выпадающих списка отображают месяцы и годы,и он фильтрует запись сотрудника по кнопке отправки,но он получает первые значения, заполненные, как январь и 2017 год, при загрузке страницы и фильтрует запись, я хочу, чтобы она была пустой, как мы делаем привязку значений к выпадающему списку, например "--Select-- " или пустой .

Karthik_Mahalingam

добавьте пустое значение к нулевому индексу

Member 12605293

Спасибо Тебе Картик :)

Karthik_Mahalingam

:)

Member 12605293

Картик Дай мне ответ на другой вопрос который я опубликовал

https://www.codeproject.com/Questions/1184251/How-to-join-aspgrid-with-normal-tablerow

Karthik_Mahalingam

есть ли у вас team viewer?

Member 12605293

Привет, спасибо за ответ.У меня нет командного зрителя сэр в офисе

Member 12605293

Привет сэр мне нужна ваша помощь

Karthik_Mahalingam

увижу Томо, я так устала сегодня

Member 12605293

- Привет, Сэр. Хру теперь?

Member 12605293

:/

Member 12605293

protected void ExportToExcel(object sender, EventArgs e)
        {
            gvDetails.AllowPaging = false;
            this.bind();
            Response.ClearContent();

            Response.AddHeader("content-disposition", "attachment; filename=Name.xls");
            Response.ContentType = "application/excel";
            System.IO.StringWriter sw = new System.IO.StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);
            gvDetails.RenderControl(htw);
            string renderedGridView = sw.ToString();
            System.IO.File.WriteAllText(@"D:\New folder\Name.xls", renderedGridView);
            Response.Write(sw.ToString());
            Response.End();
        }
        protected void ExportToPdf(object sender, EventArgs e)
        {
           
            gvDetails.AllowPaging = false;
            this.bind();
            Response.ClearContent();
            string fileName = "Name";
            string dateFormat = "MMddyyyy";
            string timeformat = "HHmmss";
            string outPutFileName = string.Format("{0}_{1}_{2}.pdf", fileName, DateTime.Now.ToString(dateFormat), DateTime.Now.ToString(timeformat));
            Response.AddHeader("content-disposition", "attachment; filename=" + outPutFileName);


            Response.ContentType = "application/pdf";
            System.IO.StringWriter sw = new System.IO.StringWriter();
            HtmlTextWriter htw = new HtmlTextWriter(sw);

            gvDetails.RenderControl(htw);
            string renderedGridView = sw.ToString();
            System.IO.File.WriteAllText(@"D:\New folder\Name.pdf", renderedGridView);
            Response.Write(sw.ToString());
           
            Response.End();
        }
        protected void ExportToWord(object sender, EventArgs e)
        {
       
            using (StringWriter sw = new StringWriter())
            {
                using (HtmlTextWriter hw = new HtmlTextWriter(sw))
                {

                    gvDetails.AllowPaging = false;
                    this.bind();

                    gvDetails.RenderControl(hw);
                    StringReader sr = new StringReader(sw.ToString());
                    Document Doc = new Document(PageSize.A2, 10f, 10f, 10f, 0f);
                    HTMLWorker htmlparser = new HTMLWorker(Doc);
                    PdfWriter.GetInstance(Doc, Response.OutputStream);
                    Doc.Open();
                    htmlparser.Parse(sr);
                    Doc.Close();


                    Response.AddHeader("content-disposition", "attachment; filename=Name.doc");
                    Response.ContentType = "application/word";
                    
                    HtmlTextWriter htw = new HtmlTextWriter(sw);
                    gvDetails.RenderControl(htw);
                    string renderedGridView = sw.ToString();
                    System.IO.File.WriteAllText(@"D:\New folder\Name.doc", renderedGridView);
                    Response.Write(sw.ToString());
                    Response.End();
                }
            }
        }