Не удалось сохранить файл Excel в Exjs на стороне браузера.Как скачать файл Excel в Sencha/Ext JS?
Ниже приведен мой код C#, чтобы предоставить ответ на приложение extJS в виде файла Excel.
Я конвертирую таблицу данных Excel e, используя код C#, а функция exportToExcel()
возвращает файл Excel в ответ на запрос внешнего приложения JS.
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=DataTable.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(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
И это мой Ext JS код
handler: function() {
//me = this;
var hfUserAutoId = me.InfoPanel.getForm().findField('hfUserAutoId').getValue();
var form = me.InfoPanel.getForm();
if (form.isValid()) {
form.submit({
url: 'getCSV.aspx',
method: 'POST',
params: { "userAutoId": hfUserAutoId },
waitMsg: 'Downloading your File...',
success: function (fp, o) {
// Heare I want to do code for download respoce file
me.fireEvent('CloseThisEx');
}
});
}
}
}
Посмотри здесь https://www.sencha.com/forum/showthread. php? 246673-Force-download-file-from-server & p = 902022 & viewfull = 1 # post902022 –
Если у вас есть премиальная лицензия ExtJS, я бы использовал плагин-экспортер, предоставленный ExtJS http://docs.sencha.com/extjs/6.2.0 /classic/Ext.exporter.excel.Xlsx.html, http://examples.sencha.com/extjs/6.2.0/examples/kitchensink/#big-data-grid – pagep