Epplus löst die Ausnahme von Datavalidations -Ausnahme "angefordertes Wert" nicht gefunden ". Beim Versuch, XLSM zu speichern
Frage
Ich versuche, Änderungen an einem Kunden zu verhindern .xlsm Datei (eine C# -Anwendung wird mit Daten aus einer Webform gefüllt und an ein CMS übermittelt) Epplus.
Aber auf Paket.Save (Name) - oder Packagae.Saveas (Name) - Eine Ausnahme wird durch die Sammlung von Datavalidations ausgelöst:
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
Selbst versucht, Arbeitsblatt zu versuchen.
try
{
using (ExcelPackage package = new ExcelPackage(output))
{
package.SaveAs(output);
}
}
catch (Exception ex)
{
_log.Error(ex.ToString());
}
Ich habe dieses Verhalten nicht in einer Excel -Datei, die ich von Grund auf neu erstelle, aber ich muss die angegebene Datei verwenden.
Ich weiß nicht, ob es von Bedeutung ist, aber ich arbeite im .NET 4 -Framework und es handelt sich um eine 1,01 MB .xlsm -Datei. Die Datei speichert/speichert-wie gut (auch mit neuen Daten) in Excel.
Hinweis: Anscheinend .xlsx Dateien funktionieren gut, aber das .xlsm-Format enthält VBA-Makros, die im .xlsx-Format nicht gespeichert werden können, sodass der Datei-Typ nicht konvertiert werden kann.
Lösung
Wie üblich finde ich innerhalb von 60 Sekunden nach dem Veröffentlichen neue Informationen online.
Da ist ein Diskussion An der Epplus -Codeplex -Site, die darauf hindeutet "In der Komponente gibt es keine wirkliche Unterstützung für [XLSM -Dateien]."
Das kann die Quelle des Problems sein.
Andere Tipps
Haben Sie die neueste Version von epplus?
Sie haben diese Ausgabe März 2011 behoben. Es hatte damit zu tun, dass Validationstypen unempfindlich waren.
Sehen:http://epplus.codeplex.com/workitem/13246
Bearbeiten: Sie können auch versuchen, es als .xlsx zu speichern, wenn XLSM nicht unterstützt wird.
Wie Ed schrieb, habe ich die letzte Version von Epplus abgeladen, die vom 31. Januar 2012 ist, und es hat mit seiner Validierung sehr gut funktioniert. Das Excel -I -Lesen und Schreiben ist ein .xlsx -Format.