EPPlus getta DataValidations eccezione “valore richiesto 'data' non è stato trovato.” quando si cerca di salvare XLSM

StackOverflow https://stackoverflow.com/questions/8302801

Domanda

Sto cercando di apportare modifiche a un fornito dal cliente .xlsm file (un'applicazione C # riempirà con i dati da un modulo web e inviare a un CMS) utilizzando EPPlus.

Ma package.Save (nome) - o packagae.SaveAs (nome) - viene generata un'eccezione dalla collezione 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

Anche tentando worksheet.DataValidations.Clear () genera la stessa eccezione, e questo è senza alcuna modifica al file:

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

Non ho questo comportamento in un file excel che creo da zero, ma ho bisogno di utilizzare il file in dotazione.

Non so se è significativo, ma sto lavorando in .NET Framework 4, ed è un file .xlsm 1.01 MB. Il file viene salvato / salva-come bene (anche con nuovi dati) da Excel.

NOTA: a quanto pare .xlsx i file funzionano bene, ma il formato del .xlsm contengono le macro VBA che non possono essere salvati nel formato .xlsx, in modo che il tipo di file non può essere convertito.

È stato utile?

Soluzione

Come al solito, entro sessanta secondi di distacco trovo nuove informazioni on-line.

C'è un discussione ai EPPlus CodePlex sito che suggerisce che " non c'è nessun vero supporto per [file] XLSM nel componente. "

La può essere la fonte del problema.

Altri suggerimenti

Hai l'ultima versione di EPPlus?

Si fissa il numero di marzo del 2011. Aveva a che fare con ValidationTypes essere case insensitive.

Vedere: http://epplus.codeplex.com/workitem/13246

Modifica : Potete anche provare a salvarlo come .xlsx se xlsm non è supportato.

Ed Ha scritto ho scaricato l'ultima versione di EPPlus che è dal 31 gennaio 2012, e ha funzionato molto bene con la sua convalida. L'im lettura e scrittura Excel è un formato .xlsx.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top