Excel/C#でdynamic型からWorksheet型へキャストができない
はまったのでメモ。
ExcelをC#で扱ってて.Net Framework4.0に上げたら、
Workbook book; ... ((Worksheet)book.Sheets[1]).SaveAs(path);
はコンパイル通らないけど、
book.(Sheets[1] as Worksheet).SaveAs(path);
は通る。
error CS1969: 動的な式のコンパイルに必要な 1 つ以上の型が見つかりません。参照が指定されていることを確認してください。
そもそもキャストしないでも動くはずなのだけど、SheetとWorksheetと_Worksheetの型があるからこれが原因でキャストが必要なのか?
dynamicの仕組みがよくわからないのでまた後日調べる。
参考:
読ませてもらったけど難しい。
Excel遅延バインディング : ヒロの趣味ブログ