EPPlus выдает исключение DataValidations «Запрошенное значение« дата »не найдено».при попытке сохранить xlsm - PullRequest
0 голосов
/ 29 ноября 2011

Я пытаюсь внести изменения в предоставленный клиентом файл .xlsm (приложение C # заполнит данные из веб-формы и отправит в CMS), используя EPPlus.

Но для package.Save (имя) - или packagae.SaveAs (имя) - исключение выдается коллекцией DataValidations:

2011-11-28 14:17:51,380 [9] ERROR app.ExcelConverter - System.ArgumentException: Requested value 'date' was not found.
   at System.Enum.EnumResult.SetFailure(ParseFailureKind failure, String failureMessageID, Object failureMessageFormatArgument)
   at System.Enum.TryParseEnum(Type enumType, String value, Boolean ignoreCase, EnumResult& parseResult)
   at System.Enum.Parse(Type enumType, String value, Boolean ignoreCase)
   at OfficeOpenXml.DataValidation.ExcelDataValidationCollection..ctor(ExcelWorksheet worksheet)
   at OfficeOpenXml.ExcelWorksheet.get_DataValidations()
   at FItoExcelCore.ExcelConverter.RunSample(String filePath) in \path\to\class.cs:line 32

Даже при попытке рабочего листа. DataValidations.Clear () выдает то же исключение, и это без каких-либо изменений в файле:

        try
        {
            using (ExcelPackage package = new ExcelPackage(output))
            {
                package.SaveAs(output);
            }
        }
        catch (Exception ex)
        {
            _log.Error(ex.ToString());
        }

У меня нет такого поведения в файле Excel, который я создаю с нуля, но мне нужно использовать прилагаемый файл.

Не знаю, насколько это важно, но я работаю в .Net 4 Framework, и это файл размером 1,01 МБ .xlsm. Файл сохраняет / сохраняет как хорошо (даже с новыми данными) из Excel.

ПРИМЕЧАНИЕ: очевидно, .xlsx файлы работают очень хорошо, но формат .xlsm содержит макросы VBA, которые нельзя сохранить в формате .xlsx, поэтому тип файла не может быть преобразован.

Ответы [ 3 ]

1 голос
/ 29 ноября 2011

Как обычно, в течение шестидесяти секунд после публикации я нахожу новую информацию в Интернете.

На сайте кодового комплекса EPPlus обсуждается , который предполагает, что " реальной поддержки нетдля [xlsm files] в компоненте."

Возможно, источником проблемы.

0 голосов
/ 29 февраля 2012

Как Эд написал, я загрузил последнюю версию EPPlus, выпущенную 31 января 2012 года, и она очень хорошо работала с ее проверкой. Excel Im для чтения и записи в формате .xlsx.

0 голосов
/ 29 ноября 2011

У вас есть последняя версия EPPlus?

Они исправили эту проблему в марте 2011 года. Это связано с тем, что ValidationTypes не учитывает регистр.

Редактировать : Вы также можете попробовать сохранить его как .xlsx, если xlsm не поддерживается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...