c# Memory Stream/OpenXML有时会在文件名中添加额外的字符

本文关键字:添加 文件名 字符 Stream Memory OpenXML | 更新日期: 2023-09-27 18:07:09

我使用OpenXML和MemoryStream导出Excel文件,它有时会在文件路径中添加额外的字符。并不是每次都这样。当我第一次加载它的一天,它似乎工作得很好,但在运行它一堆它开始添加额外的字符。我假设存在内存泄漏或缓冲区问题,但我对它的了解不足以修复它。

我的代码是:
using (var stream = new MemoryStream())
{                
     report.CreatePackage(stream);
     System.Web.HttpContext.Current.Response.Clear();
     System.Web.HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";
     System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Report_" + DateTime.Now.ToShortDateString() + ".xlsx");
     stream.Position = 0;
     stream.CopyTo(System.Web.HttpContext.Current.Response.OutputStream);
     System.Web.HttpContext.Current.Response.Flush();
     System.Web.HttpContext.Current.Response.Close();
     System.Web.HttpContext.Current.Response.End();
 }  

在文件路径:Report_09_14_2016CAOFMLJL.xlsx中看起来像这样,而不仅仅是报告和日期。

任何帮助都会很感激。

c# Memory Stream/OpenXML有时会在文件名中添加额外的字符

在我的机器上DateTime.Now.ToShortDateString()打印14/09/2016,我猜它与系统设置有关。也许你可以试试这个(或者你需要的任何其他形式):

DateTime.Now.ToString("dd_MM_yyyy")

斜杠在Windows的文件名中无效