喫茶XRAYトップページ

[スレッド全体
]

[1664] Re3:ExcelApplicationで教えて 先頭が0の文字列の扱い返信 削除
2008/5/16 (金) 23:45:25 Mr.XRAY
▼ palさん

> でも実はこのTExcelApplicationでの速度が異常に遅いので
> マスターのHPでご紹介いただいているM&Iさんのxbiffを


TExcelApplicationはVBAですから、どうしょうもないですね。
XBiffは直接ファイル構造から読み込んでいますから、当然速いです。
通常の用途ではXBiffで十分だと思います。

もっといろいろな操作をする際に速いのはExcel Createrですね。
ただし、これは使用するPCにDLL(使用するプログラムのフォルダ内に)
が必要です。


>今回使用しています。xbiffで上記(2)の方法をとってみたのですが
>「’」がもろにでてしまいます。


う〜ん。XBiffでもできると思うんですが。
時間があったらテストしてみます。期待しないでください。

[1665] Re4:ExcelApplicationで教えて 先頭が0の文字列の扱い返信 削除
2008/5/16 (金) 23:51:06 Mr.XRAY
> 時間があったらテストしてみます。期待しないでください。

ちょっと見てみようと思って、XBiff.pasを開いたら、
ゲッゲ、かなり古いバージョン、これからDLして、明日以降ですね (^_^;)

[1666] Re4:ExcelApplicationで教えて 先頭が0の文字列の扱い返信 削除
2008/5/17 (土) 07:46:39 Mr.XRAY
> う〜ん。XBiffでもできると思うんですが。

XWriteBiff.pasを見てみました。
なるほど、できませんね。このコードだと。
そこで、ちょっと追加してみました。もしかしたら、違うというか、他の方法
があるのかも知れませんが、
WindowsXP(SP2) + Delphi7 Pro
で、Excel2000のブックに書き込んだところ、とりあえずはうまくいっている
様です。

追加部分。(1)〜(6)まで全部で6行あります。

(1) function TWriteBiff.DataKind(const Data: string): integer;
 
  if dt[1]='''' then     //*****(1)
  begin                  //*****(2)
    Result := BLABEL;    //*****(3)
    exit;                //*****(4)
  end else               //*****(5)
  if Pos(dt[1], '-.1234567890') = 0 then

(2) procedure TWriteBiff.WriteCell(Row, Col: integer; rgbAttr: .....

    BLABEL:
      begin
        if Data[1]='''' then Data := Copy(Data,2,Length(Data)); //*****(6)
        sLen := Length(Data) and $FF;
        xLabel := AllocMem(sLen + 1);
        try
           StrLCopy(xLabel, PChar(Data), sLen);
           WriteLabel(Row, Col, rgbAttr, xLabel);
         finally
           FreeMem(xLabel);
         end;
       end;
     end;

エクセルからのデータの読み込みですが、元々データそのものが文字列ですから、
OKだと思います。

[備考]
修正後にコンポを再登録(再インストール)する必要はありません。

[1667] Re5:ExcelApplicationで教えて 先頭が0の文字列の扱い返信 削除
2008/5/17 (土) 09:52:19 pal
palです。
出来ました....感謝!感謝!
ご丁寧にxbiffまで見ていただいてありがとうございます
やはりマスター、頼りになります

[1668] Re6:ExcelApplicationで教えて 先頭が0の文字列の扱い返信 削除
2008/5/17 (土) 09:59:48 Mr.XRAY
▼ palさん

> やはりマスター、頼りになります

可愛い、きれいなお嬢さんに「おじ様、頼りになるわ」なんて
言われたら、嬉しいんですけど。
「おじ様」って柄じゃないか!?

でもメイド喫茶はどうもダメ。趣味に合いません。
あっ、鳥肌が.... !!

[1676] Re7:ExcelApplicationで教えて 先頭が0の文字列の扱い返信 削除
2008/5/22 (木) 07:23:48 M&IHomePage
Mr.X-RAYさん、ご無沙汰しております。
XBiff作者のM&Iです。

本人都合で放置していたXBiffの不具合修正までしていただいて恐縮です。

その内、修正していただいた部分を反映して、私のHPにアップさせていただきます。


[1677] Re8:ExcelApplicationで教えて 先頭が0の文字列の扱い返信 削除
2008/5/22 (木) 19:44:04 Mr.XRAY
▼ M&Iさん、どうもです。

XBiffですが、他にいい方法があるかも知れませんが、とりあえず、
元のコードをなるべく変更しない方針でやってみました。

やはり、XBiffは速いです!!

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