PowerTools SPREAD for Windows Forms 8.0J > 開発者ガイド > ファイル入出力 > シリアル化 > 逆シリアル化における数式の解析 |
製品にはクロスシート参照機能が実装されているため、数式が、他のシートを参照していることがあります。このような数式をファイルから読み込む場合、クロスシート参照が正しく機能するよう、各シートと数式を特定の順序でコントロールに読み込む必要があります。ファイルから読み込む数式の解析は、すべてのシートの読み込みが完了するまで遅延させる必要があります。FpSpreadクラスのOpenメソッドは、これらの処理を自動的に行います。XMLの読み込み、および解析は、正しい順序で行われます。
逆シリアル化の処理を独自にコーディングする場合、注意が必要です。個々のシートを読み込み、これらをワークブックに追加する処理を独自に実装する場合、ワークブックへのシートの追加が完了してから、数式を解析するコードを追加する必要があります。これには、FpSpreadクラスのLoadFormulasメソッドを使用します。このメソッドは、DefaultSheetDataModel、SheetView、および FpSpreadクラスに実装されています。LoadFormulasメソッドをシート レベルで使用する場合、対象のシートのデータモデルでこのメソッドが呼び出されます。FpSpreadレベルで使用する場合、すべてのシートに対してこのメソッドが呼び出されます。
たとえば、次のコードについて考えます。
C# |
コードのコピー
|
---|---|
fpSpread1.Sheets.Add(FarPoint.Win.Serializer.LoadObject(GetType (FarPoint.Win.Spread.SheetView), "C:\\SavedSheet.xml", "RootNode")); |
Visual Basic |
コードのコピー
|
---|---|
FpSpread1.Sheets.Add(FarPoint.Win.Serializer.LoadObject(GetType (FarPoint.Win.Spread.SheetView), "C:\SavedSheet.xml", "RootNode")) |
このコードは次のように変更し、シートを読み込んでから数式が読み込まれるようにする必要があります。
C# |
コードのコピー
|
---|---|
fpSpread1.Sheets.Add(FarPoint.Win.Serializer.LoadObject(GetType (FarPoint.Win.Spread.SheetView), "C:\\SavedSheet.xml", "RootNode")); fpSpread1.LoadFormulas(); |
Visual Basic |
コードのコピー
|
---|---|
FpSpread1.Sheets.Add(FarPoint.Win.Serializer.LoadObject(GetType (FarPoint.Win.Spread.SheetView), "C:\SavedSheet.xml", "RootNode")) FpSpread1.LoadFormulas() |
詳細については、以下のメソッドを参照してください。
数式およびクロスシート参照の詳細については、「関数リファレンス」を参照してください。