我正在 MVC 项目中生成报告。用户可以选择以 .pdf 格式或 .xls 格式获取报告
我正在使用 Aspose.Cells 生成 Excel 文件。调用下面的 ActionResult 方法。
[HttpGet]
public ActionResult GenerateReport(string format, string filterDate = "")
{
//Processing occurs here to get the appropriate info from Db.
var fileFormat = format.ToUpper() == "PDF" ? Format.Pdf : Format.Csv;
var contentType = fileFormat == Format.Pdf ? "application/pdf" : "application/vnd.ms-excel";
var makePdf = fileFormat == Format.Pdf;
var fileContents = register.GetReport(makePdf, filterDate);
return File(fileContents, contentType, "Report");
}
register.GetReport() 仅确定是否调用 GetExcelVersion() 或 GetPdfVersion()。
private void GetExcelVersion(MemoryStream stream, string name, string dateRequested = "")
{
var license = new Aspose.Cells.License();
license.SetLicense("Aspose.Total.lic");
var workbook = new Workbook();
var worksheet = workbook.Worksheets[0];
var cells = worksheet.Cells;
//writes out the appropriate information to the excel spreadsheet here
workbook.Save(stream, new XlsSaveOptions(Aspose.Cells.SaveFormat.Excel97To2003));
}
这在 Firefox 和 IE10 中很有用,但是在 IE8 上进行测试时,我从 Excel 收到以下警报:-
您尝试打开的文件“XXXXX”的格式与文件扩展名指定的格式不同。在打开文件之前,请确认文件没有损坏并且来自受信任的来源。您现在要打开文件吗?是/否
关于我做错了什么的任何想法?
干杯!