C# 如何将IEnumerable转换为字节64以进行文件下载
我正在使用WebApiContrib.Formatting.xlsx创建和下载Microsoft Excel文件。我的问题是,当从客户端调用时,文件无法打开,并且尝试了几种方法。处理PDF时,将输出转换为字节64的问题得到了解决,如下所示:C# 如何将IEnumerable转换为字节64以进行文件下载,c#,excel,asp.net-web-api,mediatypeformatter,web-api-contrib,C#,Excel,Asp.net Web Api,Mediatypeformatter,Web Api Contrib,我正在使用WebApiContrib.Formatting.xlsx创建和下载Microsoft Excel文件。我的问题是,当从客户端调用时,文件无法打开,并且尝试了几种方法。处理PDF时,将输出转换为字节64的问题得到了解决,如下所示: var response = new HttpResponseMessage { Content = new StringContent(Convert.ToBase64String(o
var response = new HttpResponseMessage
{
Content = new StringContent(Convert.ToBase64String(output.ToArray()))
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
response.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Report.pdf"
};
return response;
对于WebApiContrib.Formatting.xlsx,我有一个IEnumerable。如何将其转换为与PDF相同的方式
var subscriptionExcelModels=转换为SubscriptionExcelModel[]的SubscriptionPlans??订阅计划已转换为数组
这是excel文件代码最后一部分的片段:
var ret = Request.CreateResponse(HttpStatusCode.OK,subscriptionExcelModels);
ret.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
ret.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "Report.xlsx"
};
return ret;
为什么不将其作为MemoryStream发送呢?您应该创建一个媒体类型格式化程序,如下所示:尝试content-type应用程序/vnd.openxmlformats-officedocument.spreadsheetml。sheet@Fals这是为了创建一个PDF,而我的已经开始工作了。@EBrown我想这是因为如果我正在读取一个文件,而不是动态创建它,如何将IEnumerable转换为MemoryStream?