Next Page

1

Previous Page

Thread: EXCELをデータソースより入力

Created on: 10/21/11 03:31 PM

Replies: 7

Gootamabao


新米


Joined: 10/21/11

Posts: 5

EXCELをデータソースより入力
10/21/11 3:31 PM

初めて投稿します。

データソースにODBC経由でEXCELを指定してみました。
<cfquery>にて以下のSQLを発行
SELECT * FROM [ODBC DSN名]...[シート名]

結果参照できたのですがこの結果を<cfdump>で出力すると文字が化けます。
ƒJƒI ‹L† Ž–¼ ŽÐˆÕ”ԍ† ←こんな感じ
画面上の文字コードはUTF-8です。

ちなみにSQLServerからJet経由でこのEXCELを設定しColdFusionから
SQLSever経由でEXCELを表示すると文字は化けません
何が違うのでしょう。ODBCでは返される文字コードが違うのでしょうか。。。

Link | Top | Bottom

niiya


常連


Joined: 02/20/08

Posts: 46

RE: EXCELをデータソースより入力
10/21/11 6:07 PM

ColdFusionのバージョンはいくつですか?
もし、ColdFusion9 なら、このコマンドをたたけば日本語が使えるようになるかもしれません。

・ColdFusion 9 ODBC Service を起動

・cd C:\ColdFusion9\db\slserver54\admin

・swcla -l sar 'ColdFusion 9 ODBC Server' ServiceCodePage OS

・ColdFusion 9 ODBC Service を再起動


※↑の方法でもダメだったらjdbc-odbcブリッジで接続してみるのが良いかもしれませんね。

Link | Top | Bottom

Gootamabao


新米


Joined: 10/21/11

Posts: 5

RE: EXCELをデータソースより入力
10/31/11 2:52 PM

回答ありがとうございます!あわせてレスが遅れたことをお詫びいたします。

> ColdFusionのバージョンはいくつですか?
⇒バージョンは8です。

> ColdFusion9 なら、このコマンドをたたけば日本語が使えるようになるかもしれません
⇒試験環境がないのでやってみるのが怖いのですが・・・ 8でもできるようでしょうか?
 小心者ですいません(汗)

Link | Top | Bottom

Gootamabao


新米


Joined: 10/21/11

Posts: 5

RE: EXCELをデータソースより入力
11/01/11 8:24 AM

このままでは何も解決しないのでやってみました!

1.「ColdFusion 8 ODBC Server」は起動していたのでそのまま
2.C:\ColdFusion8\db\slserver54\admin にて以下のコマンドを入力
 > swcla -l sar 'ColdFusion 8 ODBC Server' ServiceCodePage OS
3.「ColdFusion 8 ODBC Server」を再起動

これで文字化けが解消しました!助かりました(^^)

で、新たな問題が・・・
EXCELのファイルを直接参照できたのは良いのですが、このEXCELファイルを
EXCELから修正しようとすると「ロックされています」となり更新ができません。
ユーザーがデータを入力するのはEXCELで行いたいためEXCELで更新できるように
したいのですがODBCソケットがつかんだままのため更新できない状態と思われます。
どうすればEXCELファイルを更新できる状態にできるようになるでしょうか?

「ColdFusion 8 ODBC Server」を一度停止するとEXCELファイルを更新できる
状態になるのですが、起動しなおすとデータソースを認識しなくなりデータソース
がないとエラーになります。再定義すると復活するのですが・・・データを更新し
ようとするさいに毎回このような作業を行うのも面倒ですのでなにか良い方法があ
れば教えていただきたい次第です。

Link | Top | Bottom

AXL


長老


Joined: 02/02/08

Posts: 246

RE: EXCELをデータソースより入力
11/02/11 11:08 AM

要は、”Excelファイルの内容を表示して、修正したい場合は直接Excelファイルを開いて行う”ということだと思うんですが、
もしそうなら、わざわざデータソースとして読み込むのではなく、cfspreadsheetタグを使ってExcelファイルを読み取ってあげれば、
問題のようにExcelファイルがロックされることもなく、1行のコードのみで簡単に同様のことが可能だと思うんですが。

(177)

Link | Top | Bottom

Gootamabao


新米


Joined: 10/21/11

Posts: 5

RE: EXCELをデータソースより入力
11/02/11 3:10 PM

AXL様

回答ありがとうございます。
cfspreadsheetというのは・・・ColdFusion9でしょうか?私の使用しているバージョンは8のためみあたりません。

ロックについて解決しました!
データソースの定義で[接続の維持]にチェックが付いていました(初期値)。
これを解除したら問題なくEXCELが開けました。
一応、共有設定をしておきましたが

Link | Top | Bottom

Gootamabao


新米


Joined: 10/21/11

Posts: 5

RE: EXCELをデータソースより入力
11/02/11 3:16 PM

また新たな問題が・・・

ユーザーがEXCELファイルに新規にシートを作成していないかを調べたいの
ですができますでしょうか?
存在するSQLなどでシート名を取得できればよいのですが。
手段を知っている方がいらっしゃいましたら教えていただきたいと思います。

Link | Top | Bottom

AXL


長老


Joined: 02/02/08

Posts: 246

RE: EXCELをデータソースより入力
11/03/11 12:21 AM

ColdFusion 8 ではcfspreadsheetタグはサポートされていなかったですね。すいませんでした。

削除。

(178)
* Last updated by: AXL on 1/14/2012 @ 10:38 AM *

Link | Top | Bottom

Next Page

1

Previous Page

New Post

Please login to post a response.