У меня есть фрагмент кода, который в настоящее время без проблем записывает в рабочую книгу .xls
(HSSFWorkbook
). Однако, когда я пытаюсь использовать тот же код для записи в книгу .xlsx
(XSSFWorkbook
), архив повреждается и не может быть открыт в Excel.
Следующий код — это то, что я использую для доступа к книге, редактирования книги и последующего сохранения обратно в книгу. Первоначально я предполагал, что проблема заключалась в коде, который я использовал для редактирования книги, но после его комментирования проблема все еще сохраняется.
IWorkbook workbook;
using (var file = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
if (Path.GetExtension(fileName).Contains("xlsx"))
{
workbook = new XSSFWorkbook(file);
}
else
{
workbook = new HSSFWorkbook(file);
}
}
//Code that edits workbook which is currently commented out
using (var file = new FileStream(path, FileMode.Open, FileAccess.ReadWrite))
{
workbook.Write(file);
}
Я попытался запустить этот код для пустой рабочей книги .xlsx
, и файл был поврежден, и его больше нельзя было открыть.
Я использую последнюю стабильную версию NPOI от nuget: NPOI 2.1.3.1