通过在C#中保存字节流创建的Excel文件(.xlsx)无法打开

时间:2014-12-05 12:04:59

标签: c# .net excel

我正在尝试将Excel(.xlsx)文件保存在发送到Web服务的磁盘中。我使用的代码如下,但是当我点击保存的文件时,它返回一个"文件已损坏,无法打开"错误。但是相同的方法适用于CSV文件。

  string dataFile = await Request.Content.ReadAsStringAsync();
  byte[] byteArray = Encoding.UTF8.GetBytes(dataFile);
  MemoryStream stream_ = new MemoryStream(byteArray);
  MultipartParser.MultipartParser mp = new MultipartParser.MultipartParser(stream_);

  // Save Excel file
  File.WriteAllBytes(@"C:\temp\output.xlsx", mp.FileContents);

1 个答案:

答案 0 :(得分:0)

以下工作,

        string root = HttpContext.Current.Server.MapPath("~/App_Data");
        var provider = new MultipartFormDataStreamProvider(root);

        try
        {
            string fileName = "";
            string fileLocalName = "";
            var result = await Request.Content.ReadAsMultipartAsync(provider);
            foreach (MultipartFileData file in provider.FileData)
            {
                fileLocalName = file.LocalFileName;
            }

            File.WriteAllBytes(@"C:\temp\output.xlsx", File.ReadAllBytes(fileLocalName));
        }

感谢你的帮助,Ben Robinson,Daniel A. White,Ali Sepehri.Kh和Faisal Hafeez的帮助