Я пытаюсь реализовать функцию загрузки файлов excel в моем приложении MVC asp.net и используя NPOI.Проблема с загрузкой документа .xlsm с помощью элементов управления activex с использованием NPOI
Файл имеет три листа, а Sheet2 имеет две кнопки activex.
Я читаю исходный файл, добавив значения Лист2, сохранить его в временную папку и загрузить файл позже, используя следующий код.
using (var fs = new FileStream(xlsFilePath, FileMode.Open, FileAccess.Read))
{
var templateWorkbook = new XSSFWorkbook(fs);
//Sheet update operation done here
fs.Close();
var memoryStream = new MemoryStream();
templateWorkbook.Write(memoryStream);
System.IO.File.WriteAllBytes(groupDocumentPath, memoryStream.ToArray());
}
Выпуск: Из-за управления ActiveX загруженный файл поврежден и при попытке открыть файл, он бросает ошибку:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<recoveryLog xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"><logFileName>error728720_01.xml</logFileName><summary>Errors were detected in file 'C:\Users\dsekaran\Downloads\5B87FFF306BE8040D10B702 (5).xlsm'</summary><repairedParts><repairedPart>Repaired Part: /xl/worksheets/sheet2.xml part with XML error. Catastrophic failure Line 1, column 0.</repairedPart></repairedParts><repairedRecords><repairedRecord>Repaired Records: Drawing from /xl/drawings/drawing1.xml part (Drawing shape)</repairedRecord></repairedRecords></recoveryLog>
Разъяснение: Означает ли это, NPOI не поддерживает кнопки activex? Что можно сделать, чтобы преодолеть эту проблему?
Просто примечание стороны вам не нужно закрывать FileStream, когда вы находитесь в использовании блока. – mybirthname