У нас есть приложение, которое, помимо прочего, будет отображать отчет SSRS через элемент управления ReportViewer. При экспорте в Excel создается файл, который при открытии недавно начал выдавать ошибку:
Excel не может открыть файл «MyReportName.xlsx», так как формат файла или расширение файла недопустимо , Убедитесь, что файл не был поврежден и что расширение файла соответствует формату файла.
Эта проблема возникает во всех форматах приложений Office, но меня беспокоит вопрос Excel.
Я пытался переименовать расширение файла в .xls, но это не подтвердилось. Я попытался переименовать расширение в .zip и открыть в 7z, который обычно работает с файлами xlsx, но там тоже не открывается. Файл немного меньше, чем мы ожидаем - всего несколько килобайт.
При открытии непосредственно с сервера SSRS созданный файл Excel можно открыть нормально.
Кто-нибудь сталкивался с этим раньше? ?
Обновление:
В начале файла xlsx есть несколько дополнительных байтов.
Что-то добавляет их в поток, отправляемый в браузер. Удалите их, и файл откроется просто отлично.
Последние 2 байта этого дополнительного 0D 0A, что означает возврат каретки, перевод строки. Похоже, что-то добавляет текстовую строку перед отправкой файла. Если я загружаю файл, я получаю 4 байта и 0D 0A. Другой файл, который мы исследовали, имел 5 байтов, а затем 0D 0A, так что это определенно что-то текстовое.