я нашел решение, если я не не Excel, установленный на машине и решил поделиться ею с общественным
Решением 1 (если вам нужно сохранить первенствовать файл физически на жестком диске)
вам потребуется GridView поместить данные в ней первым без CSS или стили просто получить выбранные данные из базы данных в формате вам нужно на Excel файл
<!-- GridView to bind data from DatasSet-->
<asp:GridView ID="GridView2" runat="server" Visible="False"></asp:GridView>
<!-- HyperLink to put the link of the saved file -->
<asp:HyperLink ID="HyperLink1" runat="server" Visible="False">HyperLink</asp:HyperLink>
код за
private void ConvertDataSetToExcelFile(DataSet ds)
{
GridView2.DataSource = ds.Tables[0];
GridView2.DataBind();
string FileName = DateTime.Now.Ticks.ToString() + ".xls";
string FilePath = Server.MapPath("~/upload/excel/");
GridView2.Visible = true;
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
GridView2.RenderControl(htw);
string renderedGridView = sw.ToString();
System.IO.File.WriteAllText(FilePath + FileName, renderedGridView);
GridView2.Visible = false;
HyperLink1.Visible = true;
HyperLink1.NavigateUrl = "~/upload/excel/" + FileName;
HyperLink1.Text = "Download File";
}
Просто Обратите внимание, что вам нужно сделать GridView видимым истинным первым, чтобы сделать его в файл, если он не виден ложно, то ничего, чтобы сделать, то вы можете сделать это ложь снова он используется только для хранения данных, а затем вынести его в файл
Решение 2 (если вам нужно просто создать файл на лету, то просто скачайте его клиенту напрямую)
Сразу отметим, что я нашел эти функции на моем поиске, но я не пытаюсь, то, как мне нужно первое решение, но только хотело поделиться другим решением для общественности, а также
public static void ExportToExcel(ref GridView gv, string _filename, string cmplbl)
{
string style = @"<style>.text{mso-number-format:\@;text-align:center;};.Nums{mso-number-format:_(* #,###.00_);};.unwrap{wrap:false}</style>";
//string style = @"<style> .text { mso-number-format:\@; } </style> ";
// "<style>.text{mso-number-format:\@;text-align:center;};.Nums{mso-number-format:_(* #,##0.00_);};.unwrap{wrap:false}</style>"
string attachment = "attachment; filename=" + _filename;
HttpContext.Current.Response.ClearContent();
HttpContext.Current.Response.AddHeader("content-disposition", attachment);
// If you want the option to open the Excel file without saving then;
// comment out the line below
// Response.Cache.SetCacheability(HttpCacheability.NoCache);
HttpContext.Current.Response.ContentType = "application/ms-excel";
//Response.AddHeader("Content-Disposition", "attachment;Filename=Orders.xls");
//Response.Write ("<meta http-equiv=""Content-Type"" content=""text/html; charset=Utf-8"">")
StringWriter sw = new StringWriter(); HtmlTextWriter htw = new HtmlTextWriter(sw);
gv.RenderControl(htw);
StringBuilder name = new StringBuilder();
name.Append(cmplbl);
HttpContext.Current.Response.Write(style);
HttpContext.Current.Response.Write(name.Append(sw.ToString()));
//HttpContext.Current.Response.Write(sw.ToString());
HttpContext.Current.Response.End();
//HttpContext.Current.Response.WriteFile(_filename);
//Response.ContentType = "application/vnd.ms-excel"
//Response.AddHeader("Content-Disposition", "attachment;Filename=Orders.xls")
//Response.Write ("<meta http-equiv=""Content-Type"" content=""text/html; charset=Utf-8"">")
//dbGrid_Orders.RenderControl(hw)
//Response.Write(tw.ToString())
//Response.End()
}
private void ExportGridView(GridView gvFiles, string filePath, string fileName)
{
System.IO.StringWriter sw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw);
// Render grid view control.
gvFiles.RenderControl(htw);
// Write the rendered content to a file.
string renderedGridView = sw.ToString();
System.IO.File.WriteAllText(filePath + fileName, renderedGridView);
//Response.Clear();
//Response.ContentType = "application/octect-stream";
//Response.AppendHeader("content-disposition", "filename=" + fileName);
//Response.TransmitFile(filePath + fileName);
//Response.End();
System.Web.HttpResponse response = System.Web.HttpContext.Current.Response;
response.ClearContent();
response.Clear();
response.ContentType = "text/plain";
response.AddHeader("Content-Disposition",
"attachment; filename=" + fileName + ";");
response.TransmitFile(filePath + fileName);
response.Flush();
response.End();
}
это работает на совместном хостинге, таком как Godaddy.com !!! ??? – Mariam
спасибо, но я только что нашел решение, если у меня нет excel, установленного на моем сервере веб-сервера – Mariam