C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: エクセルに2次元配列の部分データを出力するには


(過去ログ 139 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■81444 / inTopicNo.1)  エクセルに2次元配列の部分データを出力するには
  
□投稿者/ むぅ (10回)-(2016/09/23(Fri) 14:12:50)

分類:[.NET 全般] 

Win7 32bit Excel2007 Vs2015 C# .Net4.5

お世話になります。
エクセルシートから二次元配列にデータ取得し、配列上で部分更新して、更新部分のみを
エクセルに出力したいのですが、出力する配列のポインタ?をどのように指定すれば
よいでしょうか。


たとえば、
obCellData(2次元配列)にシート全体のデータを取得。
A2〜B3の範囲に該当する配列データを更新。
A2〜B3の範囲のみエクセルに出力。

○データ出力時
range = ws.get_Range("A2", "B3");
range.Value2 = obCellData; ←この部分をどう書けばいいのか?


以上、よろしくお願いします。

引用返信 編集キー/
■81451 / inTopicNo.2)  Re[1]: エクセルに2次元配列の部分データを出力するには
□投稿者/ かたぎり (3回)-(2016/09/24(Sat) 10:28:15)
Rangeクラスは文字通り、指定範囲を持っているクラス、なので
その範囲の中の「どこに入れる」まで指定しないとうまくいかないかもです。

Range.Offsetで相対位置指定、Range.Rangeで範囲内セル指定 とか使って、範囲内のこのセルにいれますよ、と書いてあげてください。

No81444 (むぅ さん) に返信
> Win7 32bit Excel2007 Vs2015 C# .Net4.5
>
> お世話になります。
> エクセルシートから二次元配列にデータ取得し、配列上で部分更新して、更新部分のみを
> エクセルに出力したいのですが、出力する配列のポインタ?をどのように指定すれば
> よいでしょうか。
>
>
> たとえば、
> obCellData(2次元配列)にシート全体のデータを取得。
> A2〜B3の範囲に該当する配列データを更新。
> A2〜B3の範囲のみエクセルに出力。
>
> ○データ出力時
> range = ws.get_Range("A2", "B3");
> range.Value2 = obCellData; ←この部分をどう書けばいいのか?
>
>
> 以上、よろしくお願いします。
>
引用返信 編集キー/
■81457 / inTopicNo.3)  Re[1]: エクセルに2次元配列の部分データを出力するには
□投稿者/ shu (915回)-(2016/09/26(Mon) 13:17:18)
No81444 (むぅ さん) に返信

> たとえば、
> obCellData(2次元配列)にシート全体のデータを取得。
range = ws.get_Range("A2", "B3");
range.Value2の値を取得すると2次元配列となるので
これをobCellDataとして使用


> A2〜B3の範囲に該当する配列データを更新。
> A2〜B3の範囲のみエクセルに出力。
上記obCellDataは該当範囲のみの配列なのでインデックスを
考慮するだけでよい。


>
> ○データ出力時
> range = ws.get_Range("A2", "B3");
> range.Value2 = obCellData; ←この部分をどう書けばいいのか?
>
この記述のままでよいかと思います。

引用返信 編集キー/
■81458 / inTopicNo.4)  Re[2]: エクセルに2次元配列の部分データを出力するには
□投稿者/ むぅ (13回)-(2016/09/26(Mon) 13:18:52)
かたぎりさま
お世話になります。
配列の指定部分だけを出力するのは難しそうなので
別領域に作成した配列にデータコピーしてから、
エクセルに出力するようにしました。
ありがとうございました。

解決済み
引用返信 編集キー/
■81485 / inTopicNo.5)  Re[2]: エクセルに2次元配列の部分データを出力するには
□投稿者/ むぅ (14回)-(2016/09/28(Wed) 14:02:39)
shuさま
お世話になります。コメントいただいてたのに気が付いておりませんでした。

obCellDataに数百行のデータを一括取得したあと、部分更新して一括上書き
する処理をしているのですが、あるセルに2万文字以上のデータが登録されて
おり、エクセルへの配列データの出力が失敗してしまいます。

その場合、取得更新済みの配列データ(obCellData)を1行ずつエクセルに出力
していくことで、極力データを反映するようにしているのですが、その場合に
配列の特定行だけを出力する方法について質問させていただきました。


今回は1行分の配列領域を新たに作成し、obCellDataからデータコピーすること
で対応しました。

コメント、ありがとうございました。



解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -