Я работаю над задачей, в которой я должен загрузить отчет в формате xlsx. Файл отчета успешно сгенерирован с сервера и также получен на стороне клиента. Но это не открытие и недопустимая ошибка формата.
Ниже приведен код серверной части.
var output = await reportObj.GetExcelData(rParams);
if (output != null){
var result = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(output.ConentBytes)
};
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = output.FileName
};
return result;
}
Вот код для клиентской стороны:
var saveData = function (response) {
if (response.status === 200) {
var reportData = response.data;
var b = new Blob([reportData], { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" });
saveAs(b,"ReportFile.xlsx");//this is FileSaver.js function
} else {
console.log(response.statusText);
}
};
$scope.getExcelFile = function(reportName, reportParams) {
reportDataService.getExcelReportData(reportName, reportParams, saveData);
}
Ниже приведено сообщение об ошибке:
Excel не смог открыть newFile.xlsx, потому что некоторый контент не читается. Вы хотите открыть и отремонтировать эту книгу?
При нажатии на восстановление появляется следующая ошибка:
Excel не может открыть этот файл.
Недопустимый формат файла или расширение файла. Убедитесь, что файл не был поврежден и расширение файла соответствует формату файла.
Может ли кто-нибудь объяснить мне, что я делаю неправильно? Между тем, те же объекты генератора файлов на стороне сервера работают плавно в приложении форм ASP.Net, и файл открывается без какой-либо ошибки.
Спасибо.