喫茶XRAYトップページ

[スレッド全体
]

[2395] plXLSOutのSetSheetNoについて返信 削除
2009/5/29 (金) 23:21:30 akki-
はじめまして、akki-と申します。

エクセル出力コンポーネント使わせて頂こうと思い、本日ダウンロードし、
サンプルを作ってみたのですが、
SheetNoプロパティを使ってのシートの切替がうまくいきませんでした。

そこで、SetSheetNo関数を拝見しまして、一行コードを追記させて
頂きました。
これにより、サンプルコードも、狙い通り動作するようになりましたので、
ご報告します。

お時間のありますときに、ご確認頂ければ幸いです。


具体的には、PutPosStr関数を使い
シート1に'A',シート2に'B'を出力しようとしましたが、
下記コードを実行すると、
文字列'A','B'ともにシート1に出力されてしまう状態です。

☆サンプル
-----------------------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
begin
  plXLSOut1.SheetNo := 1;
  plXLSOut1.Excute;
end;

procedure TForm1.plXLSOut1BeforeEnd(Sender: TObject);
begin
  plXLSOut1.PutPosStr( 'A',2,1,'@');
  plXLSOut1.SheetNo := 2;
  plXLSOut1.PutPosStr( 'B',2,2,'@');
end;

-----------------------------------------------------------------

☆SetSheetNo関数に一行を追記 ( 『 //←☆ ここを追加 』の行 )
-----------------------------------------------------------------
procedure TplXLSOut.SetSheetNo(const Value: Integer);
var
    hXlsID: Longint;
    szSheetName: array [0..MAX_PATH-1] of Char;
begin
    if (Value<>null) and (Value<>FSheetNo) then begin
      if FFileCreate then begin
        FSheetNo:=Value;
        XlsSheetNo(FSheetNo); //←☆ ここを追加
      end else begin
        if (csDesigning in ComponentState) then exit;
        try
          FSheetNo:=Value;
          if XlsReadBook(PChar(FFilePath),hXlsID) then begin
            if XlsCrt3.XlsGetSheetName(Value,szSheetName,SizeOf(szSheetName)) then begin
              FNewSheetFlag:=False;
              FSheetNo:=Value;
            end;
          end;
        finally
          XlsCloseBook(True);
        end;
      end;
    end;
end;
-----------------------------------------------------------------


[2396] Re:plXLSOutのSetSheetNoについて返信 削除
2009/5/30 (土) 07:35:20 Mr.XRAY
▼ akki-さんこんにちは.

お手数かけました.ありがとうございます.
早速確認したいと思います.
これも,コンポにしなくてもよかったのかもしれませんが,
開発当時,「エクセルに出せないか」という要望があり,
何となく,フォーム上に「ポトリ」と配置した方が便利だと思って
作成したものです.

今だったらXBiff使っていたかも知れませんね (^^;


[2397] Re2:plXLSOutのSetSheetNoについて返信 削除
2009/5/30 (土) 19:47:04 Mr.XRAY
> 早速確認したいと思います.

遅くなりましたが,修正版UPしました.
今後もよろしくお願いします.

さてと,plPrevの修正が待っています.


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