2

IgniteUIツールセットを使用してExcelスプレッドシートを生成しています。古いバージョンのアプリで機能していたコードがいくつかありますが(古いSVNコードからソースを取得しました)、今では本当に奇妙な問題が発生しています。

私が得る例外は次のとおりです。

An exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' 
occurred in Unknown Module. but was not handled in user code

Additional information: 'object' does not contain a definition for 'Fill'

If there is a handler for this exception, the program may be safely continued.

これは、cell.CellFormat.Fill(設定して例外を取得しようとしている)がウォッチウィンドウに表示されていることを示すデバッガーのスクリーンショットです。セル自体が動的オブジェクトであることに注意してください。

デバッガーのスクリーンショット

誰もがこれを引き起こしている可能性があるものを知っていますか?動的オブジェクトを十分に扱っていないのかもしれませんが、「Fill」がそこにあるように思えます。

4

1 に答える 1

3

私はInfragisticsに質問に答えてもらいましたが、他の人もそれに遭遇した場合に備えて解決策を提供します。

解決策は、foreachループでvarを使用する代わりに、セルをWorksheetCellとしてキャストすることでした。

foreach (WorksheetCell cell in region)
{
    cell.CellFormat.Fill = CellFill.CreateSolidFill(System.Drawing.Color.Gray);
    cell.CellFormat.Font.ColorInfo = new WorkbookColorInfo(System.Drawing.Color.White);
}

なぜそれが修正されるのか完全にはわからないので、いつかそれを掘り下げる予定であり、私がそれを持っているときにその情報でこの答えを更新するかもしれません。

于 2013-03-21T15:22:58.893 に答える