Формат Excel всплывает при открытии созданного файла Excel (MVC) - PullRequest
0 голосов
/ 04 июня 2019

Я использовал следующий код для создания файла Excel.

[HttpPost]
    public ActionResult GenerateReport(string ReportPractice, string ReportMarket)
    {
            Share_Template ST = new Share_Template();
            DataSet ds = new DataSet();

            if (ReportPractice != "")
            {
                ds = ST.GenerateReport("PracticeReport", ReportPractice, user.MyProperty.ToLower());
            }

            else
            {
                ds = ST.GenerateReport("MarketReport", ReportMarket, user.MyProperty.ToLower());
            }

            Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();

            //Create an Excel workbook instance and open it from the predefined location
            Microsoft.Office.Interop.Excel.Workbook excelWorkBook = excelApp.Workbooks.Add(Type.Missing);

            foreach (System.Data.DataTable table in ds.Tables)
            {
                //Add a new worksheet to workbook with the Datatable name
                Microsoft.Office.Interop.Excel.Worksheet excelWorkSheet = excelWorkBook.Sheets.Add();
                excelWorkSheet.Name = "Test Sheet";

                for (int i = 1; i < table.Columns.Count + 1; i++)
                {
                    excelWorkSheet.Cells[1, i] = table.Columns[i - 1].ColumnName;
                }

                for (int j = 0; j < table.Rows.Count; j++)
                {
                    for (int k = 0; k < table.Columns.Count; k++)
                    {
                        excelWorkSheet.Cells[j + 2, k + 1] = table.Rows[j].ItemArray[k].ToString();
                    }
                }
            }

            string FileName = "Report " + DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ".xls";

            string fullPath = Path.Combine(Server.MapPath("~/temp"), FileName);

            ST.CheckFile(fullPath);

            FileStream memoryStream = new FileStream(fullPath, FileMode.Create);

            memoryStream.Dispose();

            return new JsonResult()
            {
                Data = FileName
            };
    }

Файл загружается без проблем, но когда я пытаюсь открыть файл, появляется следующее всплывающее окно.

"Excel не может открыть файл'thing.xlsx ', так как формат файла или расширение файла недействительны. Убедитесь, что файл не был поврежден и что расширение файла соответствует формату файла."

Даже если я нажимаю «ок», иногда Excel отображает лист, а иногда я даже не вижу лист.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...