C#HttpResponseMessage / Angularjs - 以Excel格式下载并不总是保存数据

时间:2017-07-10 18:58:47

标签: c# angularjs asp.net-web-api httpresponsemessage

我可以使用HttpResponseMessage下载并设置所有标题参数,如下面的代码提取中所示:

downloadHttpResp.Content = new ByteArrayContent(dwlMemStream.ToArray());
//*******************************************************************************
downloadHttpResp.Content.Headers.Add("x-filename", fileName);
downloadHttpResp.Content.Headers.ContentType = new MediaTypeHeaderValue(mimeType);    
downloadHttpResp.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment");
downloadHttpResp.Content.Headers.ContentDisposition.FileName = fileName;

问题出在其中一列 - 只是一个文本列 (但下载和打开会将其视为日期列)。对于例如我有多个行列值出现为 11 - 05 ,当在Excel中保存或打开下载时,它会转换为 Nov 05 (就像它的日期一样) 。我该如何解决这个问题?有没有其他方法可以克服,或者我可以设置的某些标题选项/设置是否保留数据并且在接收端不进行转换? 非常感谢任何帮助。

由于

2 个答案:

答案 0 :(得分:1)

您可以尝试在出现之前添加=并在双引号中出现,例如=“11-05”

答案 1 :(得分:0)

这看起来像是Excel读取文件的问题。例如,如果它是CSV或平面文件,excel不知道这些值是什么,并将进行猜测。

除非您修改输出以避免与Excel应用程序冲突,否则将其置于控件之外

但是,如果正在下载的文件是实际的Excel文件,那么您需要确保在最初保存/生成时正确配置了值类型。