Создание файла Excel с использованием .NET Aspose Cells и попытка загрузки через браузерC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Создание файла Excel с использованием .NET Aspose Cells и попытка загрузки через браузер

Сообщение Anonymous »

Я пытаюсь динамически создать версию HTML-отчета Excel с использованием ячеек .NET Aspose.

Ситуация требует создания файла Excel, а затем его передачи. файла Excel в браузер пользователя для загрузки.

Я создаю CSV-файл с необходимыми мне данными из HTML-отчета.

Затем я открываю шаблон Excel, созданный с помощью Aspose Cells, и заполняю его содержимым CSV.

Это отлично работает, когда я сохраняю файл локально. на мою машину, но никогда, когда я пытаюсь передать его обратно в Javascript для загрузки через браузер.

Пожалуйста, найдите мой код ниже:

C# — создание книги Excel

Код: Выделить всё

Workbook temp = new Workbook(System.Web.Hosting.HostingEnvironment.MapPath($"~/templates/") + @"excel_template.xlsx");
Worksheet ws = temp.Worksheets[0];
ws.Cells.ImportCSV(csvFile, ",", false, 1, 0);

// Used to test the excel populates correctly
temp.Save("Path_to_file" + fileName + ".xlsx", SaveFormat.Xlsx);
Затем я пытаюсь передать эту книгу в браузер через сообщение HttpResponseMessage.

После долгих поисков это то, что я придумал (ПРИМЕЧАНИЕ: может быть совершенно неправильно)

Код: Выделить всё

 MemoryStream ms = new MemoryStream();
temp.Save(ms, SaveFormat.Xlsx);
byte[] bytes = ms.ToArray();

HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK);
response.Content = new ByteArrayContent(bytes);
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
response.Content.Headers.ContentDisposition.FileName = fileName + ".xlsx";
response.Content.Headers.ContentType = new MediaTypeHeaderValue("Application/x-msexcel");

return response;
Затем я пытаюсь взаимодействовать с ответом с помощью Javascript, чтобы создать загрузку файла Excel, который виден через браузер.

Код JavaScript

Код: Выделить всё

$.get(ROOT + 'api_route', { 'csv': csv }, function (data) {
var byteArray = new Uint8Array(data);
var link = document.createElement('a');
var blob = new Blob(byteArray, { type: "application/octet-stream" });
link.href = window.URL.createObjectURL(blob);
link.download = "sample_excel_" + new Date(Date.now()).toLocaleDateString() + '_' + new Date(Date.now()).toLocaleTimeString() + ".xlsx";
link.click();
});
Файл Excel загружается через браузер, но файл поврежден и его невозможно открыть.

Я спрашиваю, можно ли это сделать в первую очередь?

Если да, то очевидно ли, что я сделал что-то не так?

Подробнее здесь: https://stackoverflow.com/questions/509 ... ia-browser
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Каково использование Aspose-words-25.4.pom в https://releases.aspose.com/java/repo/com/aspose/aspose-words/25.4/aspose-w
    Anonymous » » в форуме JAVA
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Как встроить изображение в ячейку с использованием Aspose.cells
    Anonymous » » в форуме C#
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Как встроить SVG в ячейку с использованием Aspose.cells
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как встроить SVG в ячейку с помощью Aspose.Cells
    Anonymous » » в форуме C#
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Как встроить SVG в ячейку с помощью Aspose.Cells
    Anonymous » » в форуме C#
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»