したいのでアクセスの価値観から"というシリーズです。価値(Excel)

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

質問

を使用してい Microsoft.Office.Interop.Excel 名前空間は、私の作成ます。ある時、取り込んで価値のあるシリーズです。月 MSDN というのは、 Series オブジェクトプロパティを持って Values.このいずれかを返します Range オブジェクト array of values, い、 object[].私のコードして以下の声明を発表した。

Series series = (Series)chart.SeriesCollection(i);
object[] values = (object[])series.Values;

を取得します InvalidCastException メッセージ:Unable to cast object of type 'System.Object[*]' to type 'System.Object[]'.

私はデバッグは、Visual Studio2008年までの検査の種類 series.Values とう object{object[1..7]}.この手段として理解しているのでとして宣言された object その実際のタイプ object[1..7].が object[1..7] れていない種ではキャストに関する情報は見つかりませんでし object[*].

疑い(たい)といい、この配列の開始1の代わりに0(かVB)し、さらな定義ができる1基配列クライアントまで、フルのc#...

役に立ちましたか?

解決

も厳しいかという見方もあるかもしれないが変なクライアントまで、フルのC#をゼロ以外の指数に基づくアレですが可能で御座います:

var array = Array.CreateInstance(
    typeof(object), 
    new int[] { 7 }, 
    new int[] { 1 });

だと思う対応することができるでしょうキャスト配列、ページ番号を加えて、圧縮:

foreach (object item in (Array)series.Values)
{
}

あおもしろい を説明する佐賀周辺のこの種類の配列CLR.

他のヒント

実際になぜものの定義の配列を作成する前にします。しておりますので、結果から.値物件です。

この作---

Series series = (Series)chart.SeriesCollection[i]; 
object[,] values = (object[,])series.Values; 

Darinれが正しいというものがなく1に基づくものでもない通常の2次元配列になります。範囲やその他のExcel物を使用1に基づくギザギザ"(これは、正しい説明)でない配列から任意の範囲のオブジェクトが、必ずしもcontigiously揃えております。

を配列クラスとしてDarinの提案まで受け入れる形式のオブジェクト配列になります。そうす用例の場合だけを列挙します。

この問題のWindowsアプリケーションに対すのVSTOモデルです。

foreach (object item in series.Values as Array)

う場合にVSTO.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top