Кодирование байтового массива файла EPPlus Excel в виде строки для отправки по электронной почте в виде вложения с использованием Postmark API

Я использую EPPlus для создания файла Excel с несколькими листами и некоторыми данными внутри него. Я могу преобразовать его в массив байтов, используя метод GetAsByteArray () класса ExcelPackage. Я также могу использовать конструктор ExcelPackage, чтобы сделать файл excel из массива байтов следующим образом:

var memoryStream = new MemoryStream(excelpackageByteArray) var excelPackage = new ExcelPackage(memoryStream) 

Поэтому я знаю, что массив байтов фактически представляет пакет / файл excel, по крайней мере, в отношении EPPlus. Итак, я пытаюсь отправить этот массив байтов в конечную точку, которая создает объект Attachment. Объект принимает три строки: один для contentType, один для контента и один для имени файла. Для contentType я предоставляю ему тип mime «application / vnd.openxmlformats-officedocument.spreadsheetml.sheet». Для контента я использую модуль b64 Python для b64encode массива байтов, а затем передаю его как содержимое.

Когда я получаю электронное письмо, я вижу файл excel в качестве вложения и могу его загрузить. Но когда я пытаюсь открыть файл, я получаю следующее сообщение об ошибке:

«Excel не может открыть файл, потому что формат файла или расширение файла недействительны. Убедитесь, что файл не был поврежден и расширение файла соответствует формату файла».

Учитывая структуру объекта Attachment Postmark, как передать содержимое? В частности, как мне взять структуру массива байтов в Excel и превратить его в некоторую строку, которая позволит Gmail или какой-либо другой почтовой службе правильно декодировать ее, когда я хочу загрузить и открыть вложение файла Excel? API Postmark специально требует строку с кодировкой base64. Но когда я попробовал это с b64, это не сработало. Я кодирую неправильную вещь? Вместо того, чтобы кодировать массив байтов, следует ли кодировать сам пакет excel?

Interesting Posts

Импорт PHP Excel с Spout очень медленный в некоторых файлах

Как использовать вкладку со списком, чтобы выбрать рабочий лист для копирования данных в excel vba

Преобразование столбцов категорий в несколько строк в Excel

Сравните две таблицы и извлеките значения

VBA Excel не отвечает при копировании данных в другую книгу

сравнить разницу строк между двумя книгами

Расположение диаграммы со ссылкой на таблицы заданий

Преобразование колонки из военного времени в стандартное время

Как обрабатывать разрывы строк при копировании / вставке из HTML в MS Excel

VBA – изменение размера массива в соответствии со значением в ячейке

«Недействительная процедура« Вызов или аргумент »при импорте запроса доступа в таблицу excel

python, выводящий данные из файла excel csv

C # – Microsoft.Office.Interop.Excel.Sheets to Microsoft.Office.Interop.Excel.Worksheet

Python преобразует кортеж в строки (числа), выровненные в столбцах excel / csv

VBA скрывает листы от определенных пользователей

Давайте будем гением компьютера.