以下のようなものを作りたいと考えています。
①VBAでHTTPリクエストをPHPに出す
②PHPがMySQLからのデータでXMLを自動生成し返す
③VBAでXMLを受け取る
④エクセルシート上でユーザが編集
⑤編集された内容をPHPにHTTPで渡す
⑥PHPが変更内容をMySQLに反映
①~③はできていますが、
④のXMLデータをシート上に表示するところで困っています。
Range("A1").value =
のようにするとせっかくのXML情報が失われてしまいます。
XMLをインポートする形を取ると、
シート上に変な形で表示されます。
(なんか、ツリー構造?がそのままそっくり・・・)
UI的にもデータ的(XML情報を保持)にもきれいな形で処理したいのですが、どうしたらよいのでしょうか?
XMLのデータ以外にもXML関連のファイルが必要なのでしょうか?
(DTDやXSDとか?)
因みにVBA内ではDOMを使用してXML処理をしています。
よろしくお願いします。
コメント(3件)
>のようにするとせっかくのXML情報が失われてしまいます。
具体的にはどのように失われてしまうのでしょうか?
例を書いてもらえると良いかもしれません。
--------------------------------------------------------
仮に、エクセルにキレイに表示できたとして、XMLやHTMLの修正は面倒そうですよね。
単純にテキストファイルに落として修正させたほうが良いのでは?
VBA から直接MySQLへ入出力すればよいと思うのですが。
返事が遅くてすいません。
>llusallさん
XML情報が失われてしまうというのは、
単にシート上に値を並べるだけで、
その値がどんなタグに関連付けられているのか、
分からなくなってしまうということです。
もちろん、人間の目から見て「1番目のデータの列はこれだ」ということは分かります。
しかし、シート上の値を編集してそのまま簡単に
エクスポートすることができなくなってしまうのです。
>Mookさん
ODBCを使ったりすることも考えたのですが、
社内の100人にドライバをインストールすることは
あまり現実的ではないと考えています。
XMLを使うと古いエクセルでは使用できなくなってしまうのですが、
比較的新しいエクセル、もしくはPersonal Editionではないものを想定しているので、
XMLとPHPを使おうと考えています。
(PHPを使うのは単に自分が使えるというだけの理由です)
因みに、XMLを使わずにCSVファイルを使用する方法は
既に実装済みで運用もしています。
また違う機会にはてなで質問を出そうと思います。
ご質問ありがとうございました。