Epplus выбрасывает исключение DataValidations «Запрашиваемое значение» дата »не было найдено». При попытке сохранить XLSM
Вопрос
Я пытаюсь внести изменения в понесение клиента .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, и это файл .xlsm 1,01 МБ. Файл сохраняет/сохраняет в порядке (даже с новыми данными) из Excel.
Примечание: очевидно .xlsx Файлы работают просто отлично, но формат .xlsm содержат макросы VBA, которые нельзя сохранить в формате .xlsx, поэтому тип файла не может быть преобразован.
Решение
Как обычно, через шестьдесят секунд после публикации я нахожу новую информацию в Интернете.
Eсть дискуссия на сайте Epplus codeplex, который предполагает, что »В компоненте нет реальной поддержки [XLSM -файлов]."
Может быть источником проблемы.
Другие советы
У вас есть последняя версия Epplus?
Они исправили эту проблему марта 2011 года. Это было связано с валидацией, которые были нечувствительны.
Видеть:http://epplus.codeplex.com/workitem/13246
Редактировать: Вы также можете попробовать сохранить его как .xlsx, если XLSM не поддерживается.
Как писал Эд, я загрузил последнюю версию Epplus, которая находится с 31 января 2012 года, и она очень хорошо работала с ее проверкой. Excel Im Reading and Writing - это формат .xlsx.