0

我正在使用 EPPlus 创建一个 Excel 文件,其中包含几张工作表和一些数据。我可以使用 ExcelPackage 类的 GetAsByteArray() 方法将其转换为字节数组。我还可以使用 ExcelPackage 构造函数从字节数组中创建一个 excel 文件,如下所示:

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

所以我知道字节数组实际上代表一个 excel 包/文件,至少就 EPPlus 而言。因此,我一直在尝试将该字节数组发送到创建附件对象的端点。该对象接受三个字符串 - 一个用于 contentType,一个用于内容,一个用于文件名。对于 contentType,我为其提供了“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”mime 类型。对于内容,我使用 Python 的 b64 模块对字节数组进行 b64 编码,然后将其作为内容传入。

当我收到电子邮件时,我看到了 excel 文件作为附件并且可以下载它。但是当我尝试打开文件时,我收到以下错误消息:

“Excel 无法打开文件,因为文件格式或文件扩展名无效。请确认文件没有损坏并且文件扩展名与文件格式匹配。”

给定 Postmark 的 Attachment 对象结构,我应该如何传入内容?具体来说,当我想下载和打开 Excel 文件附件时,如何获取 Excel 文件的字节数组结构并将其转换为允许 Gmail 或其他电子邮件服务正确解码的字符串?Postmark API 特别需要 base64 编码的字符串。但是当我尝试使用 b64 时,它不起作用。我编码错误吗?我应该对 excel 包本身进行编码,而不是对字节数组进行编码?

4

0 回答 0