Формат и расширение файла не совпадают. Файл может быть поврежден или небезопасен

#c# #asp.net #excel #asp.net-mvc #openxml

Вопрос:

Я создаю файл Excel с несколькими листами, используя DocumentFormat.OpenXml библиотеку из моего C# кода. Файл создается без каких-либо проблем, и в нем есть все необходимые данные, но когда я открываю его, я получаю всплывающее окно с этой ошибкой:

введите описание изображения здесь

Я заметил, что этот ошибочный файл имеет тип XSLX file . Если он такого типа Microsoft Excel Worksheet , как ни странно, он не выдает никаких ошибок: введите описание изображения здесь

Я просто не понимаю, что здесь не так и как я могу это исправить. Нужны предложения, пожалуйста. Ниже приведен мой фрагмент кода:

 private static void WriteToExcelFile(HashSet<string> modules, Dictionary<string, HashSet<MyData>> dataDictionary)
        {
            if (!Directory.Exists(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Content\MyDocument")))
                Directory.CreateDirectory(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Content\MyDocument"));

            string fileFullname = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "Content\MyDocument", "MyExcel.xslx");
            SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(fileFullname, SpreadsheetDocumentType.Workbook);

            WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); // Add a WorkbookPart to the document
            workbookpart.Workbook = new Workbook();

            // Add Sheets to the Workbook  
            Sheets sheets = spreadsheetDocument.WorkbookPart.Workbook.AppendChild(new Sheets());

           // populate sheets
           .....

           spreadsheetDocument.Close();
}
 

Комментарии:

1. ваше расширение ДОЛЖНО быть .xlsx , а не .xslx !!!

2. Упс! большое вам спасибо!

Ответ №1:

Ошибка возникает из-за неправильного расширения: оно ДОЛЖНО быть .xlsx, а не .xslx