喫茶XRAYトップページ

[スレッド全体
]

[7426] Re:まずはエクセルの操作をテストしてみる返信 削除
2014/4/4 (金) 06:41:54 空色の渚
Mr.XRAYさん
 
はじめまして。
ネットで不明な点を検索するとかならずMr.XRAYさんのお名前を見つけることができます。
お会いできてなともうれしい限りです。

エクセルで出力するのは、意外と簡単なんですね。
はじめから、質問すればよかったです。
stringgridからの変換も簡単そうです。
いま、サロンの予約、顧客管理を作っているんですが、日報をメールで送らなくてはなりません。
svcで送ると列も行もめちゃくちゃなんで、困っていました。
今まで使う機会のなかったEXEL機能ですが、Delphiを購入してから十数年目で初めて使えそうです。
ありがとうございました。
今後ともよろしくお願いします。


> > StringGridで作った表をエクセル形式で出力したいのですが、出来るものなのでしょうか?
>
> まず,エクセルの操作ができないと,できないわけですが,
> エクセルの操作はたとえば,
>
> http://mrxray.on.coocan.jp/Delphi/plSamples/400_Excel_CreateObject.htm#list8
>
> は,エクセル操作の基本的なコードですが,
> この Button1クリックのコードを次ののようにすると,セルに値をセットできます.
>
> //=============================================================================
> //  エクセルの操作例
> //=============================================================================
> procedure TForm1.Button1Click(Sender: TObject);
> begin
>   //文字列
>   WorkSheet.Cells[1,1].Value := '文字列';
>   WorkSheet.Cells[1,1].Interior.ColorIndex := 4;
>
>   //数値
>   WorkSheet.Cells[1,2].Value := 123;
>   WorkSheet.Cells[1,2].Font.Color := RGB(255, 0, 0);
> end;
>
> Delphi 5 ですと,uses 部の Excel2000, Office2000 が「未定義のエラー」となるかも知れません.
> 未定義のエラーが発生したら削除してください.
> Delphi 5 だと他にもエラーがでるかも知れません.
> 確認できないので.自分で確認してください.
>
> もし,この [400] のサンプルをダウンロードして使う場合は,以下を参考にしてください.
>
> [Delphi 5 以前で使用]
> http://mrxray.on.coocan.jp/Delphi/Others/Delphi_Versionl.htm#02
>
> [別のバージョンで作成された Delphi プロジェクトの利用]
> http://mrxray.on.coocan.jp/Delphi/Others/Delphi_Versionl.htm#01
>
>


[7431] Re2:まずはエクセルの操作をテストしてみる返信 削除
2014/4/4 (金) 07:48:32 Mr.XRAY
▼ 空色の渚さん

> エクセルで出力するのは、意外と簡単なんですね。
> はじめから、質問すればよかったです。
> stringgridからの変換も簡単そうです。


実はですね.エクセルのセルに文字,テキストを代入したり,フォントを
設定したりするのは簡単なのですが,落とし穴があります.

説明は面倒なので省略しますが,エクセル等,他のアプリの操作は,
主に,COM (コム) という技術が使われています.
これが,動作が遅いのです.

したがつて,大量のデータをエクセルに転送するには,ちょっとした
テクニックが必要となります.
でも,とりあえずは,エクセルの基本的な操作は把握しておく必要が
あるというわけです.


[7433] Re3:まずはエクセルの操作をテストしてみる返信 削除
2014/4/4 (金) 08:43:55 Mr.XRAY
> したがつて,大量のデータをエクセルに転送するには,ちょっとした
> テクニックが必要となります.


難解とか,理解できないとか言われてしまうかも知れませんが,
クリップボードを使用する方法は高速です.
ただし,このコードは,そのままでは Delphi 5 で動作しません.
Delphi 2007 以降用です.

[20_クリップボードへのコピーと貼り付け - タフ区切り形式]
http://mrxray.on.coocan.jp/Delphi/plSamples/050_TStringGrid_OnDrawCell.htm#20

もしかしたら,以下のコードは Delphi 5 でも使用可能かも知れません.
これも非常に高速です.

[19_エクセルから読み込みとエクセルへの出力 - バリアント配列使用]
http://mrxray.on.coocan.jp/Delphi/plSamples/050_TStringGrid_OnDrawCell.htm#19


[7436] Re4:まずはエクセルの操作をテストしてみる返信 削除
2014/4/4 (金) 15:17:15 空色の渚
情報有り難うございます。
クリップボード経由ですね。
参考に致します。
delphi5も、win7の時代になっても、しっかりコンパイルしてくれるというのは
非常に助かっています。
なんだかんだと言いながらもマイクロソフトは互換性という面では頑張ってくれています。
ちょっと見直しています(笑)。

▼ Mr.XRAYさん
> > したがつて,大量のデータをエクセルに転送するには,ちょっとした
> > テクニックが必要となります.
>
> 難解とか,理解できないとか言われてしまうかも知れませんが,
> クリップボードを使用する方法は高速です.
> ただし,このコードは,そのままでは Delphi 5 で動作しません.
> Delphi 2007 以降用です.
>
> [20_クリップボードへのコピーと貼り付け - タフ区切り形式]
> http://mrxray.on.coocan.jp/Delphi/plSamples/050_TStringGrid_OnDrawCell.htm#20
>
> もしかしたら,以下のコードは Delphi 5 でも使用可能かも知れません.
> これも非常に高速です.
>
> [19_エクセルから読み込みとエクセルへの出力 - バリアント配列使用]
> http://mrxray.on.coocan.jp/Delphi/plSamples/050_TStringGrid_OnDrawCell.htm#19


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82