- Home
- Forum
- ASP.NET MVC
- ActionResult ExportToExcel
ActionResult ExportToExcel
I upgraded from syncfusion version 14 to the latest version and now my code for creating and saving excel document won't work.
Attachment: images_8128da10.zip
Extension.zip are my ExcelResult.cs and XlslOExtension.cs files.
Images.zip are the screenshots from F12 of Network and Console in IE.
Action in my controller:
public ActionResult ExportToExcel(DateTime date1, DateTime date2)
{
var DataSource = db.recognitions.Include(c => c.CaptureSource).Where(w => w.date >= date1 && w.date <= date2).OrderByDescending(r => r.date).ToList();
ExcelEngine excelEngine = new ExcelEngine();
IApplication application = excelEngine.Excel;
IWorkbook workbook = application.Workbooks.Create(1);
workbook.Version = ExcelVersion.Excel2007;
IWorksheet sheet = workbook.Worksheets[0];
sheet.FirstVisibleRow = 0;
sheet.Range["A1:G1"].Merge();
sheet.Range["A1:G1"].CellStyle.Font.Bold = true;
sheet.Range["A1:G1"].Text = "Pregled očitanja";
sheet.Range["A1:G1"].HorizontalAlignment = ExcelHAlign.HAlignCenter;
sheet.Range["A2:G2"].Merge();
sheet.Range["A3"].Text = "Capture source";
sheet.Range["B3"].Text = "Date";
sheet.Range["C3"].Text = "Time";
sheet.Range["D3"].Text = "Plate text";
sheet.Range["E3"].Text = "Country assumed";
sheet.Range["F3"].Text = "Confidence level";
sheet.Range["G3"].Text = "Plate image";
int row = 4;
foreach (var item in DataSource)
{
sheet.Range[row, 1].Text = item.CaptureSource.name;
sheet.Range[row, 2].Text = item.date.ToShortDateString();
sheet.Range[row, 3].Text = item.date.ToLongTimeString();
sheet.Range[row, 4].Text = item.plate_text;
sheet.Range[row, 5].Text = item.country_assumed;
sheet.Range[row, 6].Text = item.confidence_level;
IPictureShape pic = sheet.Pictures.AddPicture(row, 7, item.plate_image_url);
sheet.Rows[row - 1].RowHeight = pic.Height;
sheet.Rows[row - 1].HorizontalAlignment = ExcelHAlign.HAlignCenter;
sheet.Rows[row - 1].VerticalAlignment = ExcelVAlign.VAlignCenter;
sheet.Range[row, 7].ColumnWidth = 25;
row++;
}
sheet.UsedRange.AutofitColumns();
sheet.Columns[6].ColumnWidth = 25;
try
{
return excelEngine.SaveAsActionResult(workbook, "SpreadSheet.xls", HttpContext.ApplicationInstance.Response, ExcelDownloadType.PromptDialog, ExcelHttpContentType.Excel2007);
}
catch (Exception)
{ }
workbook.Close();
excelEngine.Dispose();
return View("Index");
}
Thanks!
Attachment: images_8128da10.zip
SIGN IN To post a reply.
6 Replies
BJ
Bernard Jurlina
March 12, 2017 07:46 AM UTC
I forgot to add ajax call:
Attachment: Extension_681972dd.zip
$.ajax({
url: '@Url.Action("ExportToExcel", "AnprSettings")',
data: { date1: date1.toISOString(), date2: date2.toISOString() },
type: 'GET',
success: function (result) {
//do the necessary updations
},
error: function (result) {
}
});
Attachment: Extension_681972dd.zip
BJ
Bernard Jurlina
March 12, 2017 12:38 PM UTC
Internet explorer prompts for download when I open the request URL in the new IE tab
This is the URL:
http://localhost:52840/AnprSettings/ExportToExcel?date1=2017-02-28T23%3A00%3A00.000Z&date2=2017-03-12T23%3A00%3A00.000Z
BJ
Bernard Jurlina
March 12, 2017 11:14 PM UTC
So, there is something wrong with ajax call, that's for sure.
How can I call ExportToExcel action on button click with ajax and to get prompt dialog for file download?
It's working fine when I open the action from address bar.
Thanks!
AV
Abirami Varadharajan
Syncfusion Team
March 13, 2017 12:49 PM UTC
Hi Bernard,
Excel file could not be downloaded directly in client machine using Ajax call. However, this can be achieved by an workaround by saving the Excel document in the disk and downloading it. Please find the below code sample to download the Excel file.
Code Example:
|
string fullPath = Path.Combine(Server.MapPath("~/temp"), file);
byte[] fileByteArray = System.IO.File.ReadAllBytes(fullPath);
System.IO.File.Delete(fullPath);
return File(fileByteArray, "application/vnd.ms-excel", file); |
We have prepared the sample for the same. The sample can be downloaded from following link.
Sample Link: http://www.syncfusion.com/downloads/support/directtrac/general/ze/AjaxCall-109615127.zip
Please let us know if you have any concerns.
Regards,
Abirami.
BJ
Bernard Jurlina
March 13, 2017 03:16 PM UTC
Hi Abirami,
thanks for the information and for the example. I'll try it right away.
Regards,
Bernard.
AV
Abirami Varadharajan
Syncfusion Team
March 14, 2017 05:47 AM UTC
Hi Bernard,
Thank you updating us.
Please let us know if you need any further assistance.
Regards,
Abirami.
SIGN IN To post a reply.
- 6 Replies
- 2 Participants
-
BJ Bernard Jurlina
- Mar 12, 2017 07:42 AM UTC
- Mar 14, 2017 05:47 AM UTC