Скачать файл excel в формате angular 7 - PullRequest
0 голосов
/ 16 февраля 2019

Эй, после попытки загрузить Excel с сервера ниже, я нашел очень простое решение. Но на стороне API они просто прочитают путь и отправят файлы.Как я могу различить тип файла?

Если файлы сервера находятся в каталоге вашего проекта или на сервере, мы хотели бы загрузить файл Excel или любой другой файл напрямую.Добавлена ​​реализация ниже, которая работает только для Excel.

API (.net):

public ActionResult Download()
    {
        string fileName = WebConfigurationManager.AppSettings["filename"];
        var filePath = System.Web.HttpContext.Current.Server.MapPath("~/" + fileName);
        if (System.IO.File.Exists(filePath))
        {
            byte[] fileBytes = System.IO.File.ReadAllBytes(filePath);
            return File(fileBytes, System.Net.Mime.MediaTypeNames.Application.Octet, fileName);
        }
        else
        {
            var response = new WebServiceStatus()
            {
                code = -1,
                data = null,
                message = "File is Not available"
            };
            var data = JsonConvert.SerializeObject(response);
            return HandleTrivialHttpRequests(data);
        }

    }

Угловой V7 // Декларация

headers: HttpHeaders;
options: any;

// Конструктор или вы можете иметь для конкретного метода

this.headers = new HttpHeaders({ 'Content-Type': 'application/json' });
this.options = {
    observe: 'response',
    headers: this.headers,
    responseType: 'arraybuffer'
};

// Запрос на обслуживание:

this.httpClient.post('http://localhost:8080/api/report', this.data, 
this.option)
 .pipe(
catchError(err => this.handleError(err))
).subscribe(response => {
    Helper.exportExelFile(response, 'FileName');
});

// В компоненте или во вспомогательной функции в одномкласс, я использовал вспомогательную функцию, которую можно использовать и в других местах

import * as FileSaver from 'file-saver';
function exportExelFile(data, filename) {
 const blobValue = new Blob([data['body']], {
 type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
   });
   FileSaver.saveAs(blobValue, filename + '.' + FileType.EXCEL);
 }

 export const Helper = {
 exportExelFile
 };
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...