2009-07-03 11 views
1

xmlのExcelスプレッドシートを作成するコードがあります。このシートには、サブディレクトリ内のドキュメントへのハイパーリンクが含まれています。リンクのhrefの例は "。\ dir1 \ dir2 \ document.pdf"です。スプレッドシートがms Excel 2007で開かれると、このリンクは間違って "file:/// c:\ temp \ dir1 \ dir2 \ dir1 \ dir2 \ document.pdf"と表示されます。xmlは相対パスの問題を解決します

私はこれを見つけましたhttps://openxmldeveloper.org/forums/post/709.aspxしかし、残念ながらこれは私のために働いていません。何かご意見は?

答えて

0

私の知る限り、この動作は実際はExcelの保存プロセスの側面です。 Excelはドキュメント内の相対リンクを尊重し、適切に実行しますが、すぐに保存します。すべてのリンクがハードコードされたパスに再レンダリングされます。したがって、名前を付けて保存すると、リンクは古いパスを指しています。もちろん、それ以降はすべて同じファイルに保存されます。それを修正するには?実際にメモ帳を使用していないか、あらかじめ保存しておくことを不許可にすると、埋め込みリンクで本当にできないと思います。

回避策として、ハイパーリンク式を使用することもできます。数式として上書きされるべきではありません。

=HYPERLINK(".\deleteme.xls","Test")

0

この例では(下を参照...ブランクなしのコードを入力しなかった)動作している:

<細胞SS:式= "= HYPERLINK(& QUOT; \ DIR1 \ DIR2 \文書。 PDF & QUOT ;, & QUOT;文献& QUOT;) "> < /細胞>

空白" <細胞」および "& QUOT;" 「</Cell」という行が表示されます。そうでないと何も表示されません。しかし、彼らはXMLで書くべきではありません!

関連する問題