Epplusは、Datavalidationsの例外「要求された値「日付」が見つかりませんでした。」 XLSMを保存しようとするとき
質問
私は顧客がサプリしたものに変更を加えようとしています .xlsm ファイル(C#アプリケーションは、Web形式のデータとCMSに送信します)を使用して epplus。
ただし、package.save(name) - またはpackagae.saveas(name) - 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
Worksheet.datavalidations.clear()を試みても、同じ例外をスローします。これはファイルに変更がありません。
try
{
using (ExcelPackage package = new ExcelPackage(output))
{
package.SaveAs(output);
}
}
catch (Exception ex)
{
_log.Error(ex.ToString());
}
ゼロから作成するExcelファイルにこの動作はありませんが、付属のファイルを使用する必要があります。
それが重要かどうかはわかりませんが、私は.NET 4フレームワークで働いており、1.01 MB .XLSMファイルです。ファイルは、Excel内から(新しいデータを使用しても)保存/保存します。
注:どうやら .xlsx ファイルは正常に機能しますが、.xlsm形式には.xlsx形式で保存できないVBAマクロが含まれているため、ファイルタイプを変換できません。
解決
いつものように、投稿から60秒以内にオンラインで新しい情報を見つけます。
があります 討論 それを示唆するepplus codeplexサイトでコンポーネントに[XLSMファイル]の実際のサポートはありません。"
問題の原因である可能性があります。
他のヒント
Epplusの最新バージョンはありますか?
彼らは2011年3月にこの問題を修正しました。それは、検証タイプが症例鈍感であることに関係していました。
見る:http://epplus.codeplex.com/workitem/13246
編集:XLSMがサポートされていない場合は、.xlsxとして保存することもできます。
エドが書いたように、私は2012年1月31日からのEpplusの最後のバージョンをDonwloadoladにしましたが、その検証と非常にうまく機能しました。 Excel Imの読み取りと書き込みは.xlsx形式です。