lang
1var objWsAaa = (object[,])wsAaa.Range[wsAaa.Cells[12,2],wsAaa.Cells[r,c]].Cells.Value2;
上記ワークシートのデータをリストに入れる際に
大枠のループでは列数、
中のループでは行数で処理にあてはめなければいけません。
可能でしょうか。
また、どのようにリストに入れることができますか。
lang
1var listObjWsAss = new double[r]; 2v = 0; 3for(k = 1; k < c + 1; k++) 4{ 5 for(n = 1; n < r + 1; r++) 6 { 7 listObjWsAss[n][v] = double.Parse((string)objWsAaa[n,k]); 8 } 9}
今の状況は上記です。
よろしくお願いいたします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答2件
0
ベストアンサー
コメント踏まえて、シートA→シートBへのデータ反映部分を組んでみました。
lang
1//列毎に処理 2for(int currentCol = 1; currentCol <= c - 2; currentCol++) 3{ 4 //シートA対象列の全行取得 5 var rowsData = new List<object>(); 6 for(int currentRow = 1; currentRow <= r - 12; currentRow++) 7 { 8 rowsData.Add(objWsAaa[currentRow, currentCol]); 9 } 10 11 //対象列をシートBにコピーするか判定(1つでも条件を満たすセルがあればコピーしない) 12 var isExist = rowsData.Any((x) => 13 { 14 //True:セルが対象外とする条件を満たす 15 return true; 16 }); 17 18 //シートBデータへ反映 19 if(!isExist) //対象列のみ 20 { 21 for(int currentRow = 1; currentRow <= r - 12; currentRow++) 22 { 23 //便宜上、上書きしてる。加算とか、なんでも良い。 24 objWsB[currentRow, currentCol] = rowsData[currentRow - 1]; 25 } 26 } 27} 28//※シートAのデータ行数≦シートBのデータ行数を前提としたのでチェックしてない。 29//※doubleの必要性がよくわからなかったのでobjectのまま処理している
未検証です。ループが1回多く回るとか、凡ミスがあるかも。
投稿2015/05/14 06:12
総合スコア4791
0
こんにちは。
tomi0416さんのやりたいことが、ちゃんと理解出来ているか自信が無いですが、
おそらく、案2ですか?
lang
1//案1:行列の番号でリスト作りたいなら 2var result = new Dictionary<Tuple<int, int>, double>(); 3for (k = 1; k < c + 1; k++) 4{ 5 for (n = 1; n < r + 1; n++) 6 { 7 //TODO:Cast可否チェックしたほうが良いです。 8 result.Add( 9 new Tuple<int, int>(n, k), 10 double.Parse((string)objWsAaa[n, k]) 11 ); 12 } 13} 14 15//案2:Excelの行列番号ではなく0始まりで配列作るのであれば 16const int startCol = 12; //wsAaa.Cells[12,2]の12 17const int startRow = 2; //wsAaa.Cells[12,2]の2 18var listObjWsAss = new double[r,c]; 19//v = 0; vって固定で0ですか?つかいどころがイマイチわかりませんでした。 20for (k = 1; k < c + 1 - startCol; k++) 21{ 22 for (n = 1; n < r + 1 - startRow; n++) 23 { 24 listObjWsAss[n - 1, k - 1] = double.Parse((string)objWsAaa[n, k]); 25 } 26}
未検証!
投稿2015/05/13 09:56
編集2015/05/13 09:57総合スコア4791
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/13 10:33
2015/05/13 10:54
2015/05/13 11:03
2015/05/13 11:03
2015/05/13 11:16
2015/05/13 11:17
2015/05/13 13:59
2015/05/13 14:18
2015/05/14 04:20
2015/05/14 04:24
2015/05/14 05:07
2015/05/14 05:29
2015/05/14 05:43
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/14 08:13
2015/05/14 08:20
2015/05/14 09:44