#c# #excel #openxml #openxml-sdk
#c# #excel #openxml #openxml-sdk
Вопрос:
Использование OpenXML с C # для создания файла Excel создает поврежденный файл. Это происходит даже в самом простом случае открытия существующего файла и его сохранения. Сохраненный выходной файл меньше входного файла .xlsx и вызывает сообщение об ошибке в Microsoft Excel и Excel в office 365, эта ошибка не возникает с open office Excel. И Microsoft Excel, и Office 365 могут открыть файл, но они отображают сообщение о том, что файл необходимо восстановить. При открытии и повторном сохранении файла из Excel (365, MS или OpenOffice) размер файла возвращается к нормальному, и сообщение об ошибке не появляется. Любая идея, как я могу заставить OpenXML выводить правильный размер файла / файла, который каким-либо образом не поврежден.
Это самый простой пример кода, в котором есть проблема.
SpreadsheetDocument immutableDoc = SpreadsheetDocument.Open(templatePath, false);
immutableDoc.SaveAs(outPath).Close();
Комментарии:
1. Попробуйте заменить «Закрыть» на «Утилизировать». Если это не сработает, попробуйте использовать средство проверки Open XML SDK , чтобы проверить, есть ли какие-либо ошибки. Наконец, можете ли вы загрузить куда-нибудь свой входной файл («templatePath»), чтобы я мог попытаться воспроизвести вашу проблему?
2. Привет, Марио, изменение close на dispose устранило проблему, большое вам спасибо :), я потратил годы на поиски решения этой проблемы. Это происходило с каждым template .xlsx, который я пробовал, кстати.