- - PR -
クリップボードオブジェクトについて
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-05-25 15:55
はじめまして、kaki@と申します。
現在、取得したDataSetの内容を1行単位で Excelシートに書出しているプログラムを作成しています。 書出す際は、各項目をTab区切りにし、 クリップボードオブジェクトにて貼り付け処理を 件数分行っています。 しかし、実際の処理実行中に、Ctrl+Cなどの コピー処理を実行すると、格納された値が上書きされてしまい 結果が正しく出力出来ない状態です。 パフォーマンスを考慮して、クリップボードオブジェクトは 利用必須と考えていますが、何か良い対策はないでしょうか。 ご教授の程、宜しくお願い致します。 | ||||||||||||||||
|
投稿日時: 2006-05-25 16:08
個人的には、利用してはいけないくらいに考えています。 Excel に貼り付けるとのことですが、データだけが欲しい (書式は要らない) のであれば、 Tab 区切りの TSV ファイルや、カンマ区切りの CSV ファイルの方が望ましいと思います。 (Excel からでも開くことはできますし) TSV、CSV であれば、Excel Book という考え自体を捨てることができます。 また、パフォーマンスもかなり向上することでしょう。 ただ、データ出力仕様がわからないので、薦めて良いものか微妙ですが... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-05-25 16:23
じゃんぬねっと様
早速のご返答、誠にありがとうございます。 ご説明不足で申し訳ございませんでした。 現在作成しております、アプリケーションでは 数千件のレコードをExcelに出力し、ファイルとして保存するといった 機能がついております。 ですので、CSV、TSV化が出来ないのです。 そこで、VB.net独自のExcel操作オブジェクトにて データを各セルにセットしておりました所大変レスポンスが悪くなってしまった為 現在、<b>クリップボードオブジェクト</b>を使用し 一行づつ【コピー】⇒【貼り付け】をおこなって、レスポンス向上をはかっております。 そこで、問題なのですが .Netフレームワークのクリップボードオブジェクトを使用しているとはいえ、 結局はWindowsのクリップボードを使用しますので、Excel作成途中に 別処理にてコピー処理などを行うとそのデータが張り付いてしまいます。 大変お手数ですが、解決方法、もしくは回避策をご存知でしたら、ご教授頂きたいと思います。 具体的には、 ---------------------------------------------------------------- ・VB.Net から、Excelなどで使用している 拡張クリップボードを使用する ・クリップボード自体をロックしてしまう ・Windows の コピー貼り付け処理をとめてしまう ---------------------------------------------------------------- などを考えておりますが、上記は技術的に可能なのでしょうか? こちらもご存知のかたいらっしゃいましたらご教授のほど宜しくお願い申し上げます。 | ||||||||||||||||
|
投稿日時: 2006-05-25 16:47
じゃんぬねっとさんの言う通り、ユーザーの同意なし(ユーザーの明示的な操作なし)にクリップボードを弄るのは、典型的な悪いアプリケーションとされていますね。なので、今回の仕様は一考の余地ありでしょう。
CSV、TSV化の方が簡単なように思いますが。 「ファイルとして保存する」という機能が、かならず「*.xls」でないといけない仕様という事でしょうか。 _________________ 囚人のジレンマな日々 | ||||||||||||||||
|
投稿日時: 2006-05-25 16:52
なんか微妙にかみ合ってないね。
わざわざExcelからも利用できるよ。って書いてあるのにね。 データごときに書式なんていらないんだからCSVでいいんじゃないのって思うが。 現状の仕様が何も考えてない。 それゆえに今回のファイル出力もそれにあわせるしかないってやつか。 なんのために書式つきのxlsファイルを使ってるんだろうww [ メッセージ編集済み 編集者: ぶさいくろう 編集日時 2006-05-25 16:56 ] | ||||||||||||||||
|
投稿日時: 2006-05-25 17:05
現状のアプリケーションが、何らかの理由で Excel Book 形式で保存されている──
──なので、現状の仕様に合わせるほかない、ということですね。(;~_~)
そういったものは、存在しないと思います。 Microsoft Excel xx.x Object Library か何かのことでしょうか? ここは明確にしておくべきだと思います。
どのような実装をされたのでしょうか? Range に対して配列でデータを設定できるかと思いますが... _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||||||
|
投稿日時: 2006-05-25 17:11
囚人 様
ご返答ありがとうございます。
おっしゃるとおりです。 ユーザー要望として、一定期間内にレコードの変更があれば、 そのレコード行に対し、行単位でセル塗りつぶしを行って欲しいという仕様となっております。 改めてご説明が至らず、申し訳ありません。 宜しくお願い致します。 | ||||||||||||||||
|
投稿日時: 2006-05-25 17:18
kaki@さん、こんにちは。
エンドユーザーの都合や、予算などに左右されますが、 サードパーティの製品を使用するという選択もあるかと。。。 |
1|2|3
次のページへ»