私はLibreOffice 3スプレッドシート(Ubuntu 11.04上)を持っており、単に「リンク」として表示される何百ものハイパーリンクの列があります。
これらを単なるテキストに変換するか、さらに悪いことに、「リンク」というテキストではなくハイパーリンクを表示するハイパーリンクに変換する必要があります。これを行う関数、またはスプレッドシート全体でそれを行う方法はありますか?
私はLibreOffice 3スプレッドシート(Ubuntu 11.04上)を持っており、単に「リンク」として表示される何百ものハイパーリンクの列があります。
これらを単なるテキストに変換するか、さらに悪いことに、「リンク」というテキストではなくハイパーリンクを表示するハイパーリンクに変換する必要があります。これを行う関数、またはスプレッドシート全体でそれを行う方法はありますか?
マクロを使用できます。
私がテストした唯一のものはこれです。
マクロの経験がない場合は、次の手順を実行します。
ALT + F11
て、マクロ オーガナイザを開きます。これで、次のように使用できる「CELL_URL」というタイトルのマクロにアクセスできます。
リンクが「SHEET 1」の「CELL A1」から始まると仮定すると、新しいシートに移動し、最初のセルに次のように入力することをお勧めします=CELL_URL("SHEET 1",ROW(),COLUMN())
。次に、データの次元に従ってその数式をドラッグできます。
または、別の例として、「SHEET 1」の「CELL B5」から始まる 20 個のリンクの 1 つの列があり、その隣の列に URL を配置するとします (つまり、「CELL C5」から始まる)。 ")、"CELL C5" に次のように式を入力します=CELL_URL("SHEET 1", ROW(), COLUMN()-1)
。に注意してください -1
。これにより、現在の位置よりも 1 列少ないセルから URL を抽出するよう関数に指示されます。次に、式を「CELL C5」からリンクが終了する「CELL C24」にドラッグします。
アップデート:
URL が解決されていないようです。幸いなことに、WayBack Machine があります: http://web.archive.org/web/20120713222701/http://www.oooforum.org/forum/viewtopic.phtml?t=32909
また、マクロを Gist として投稿しました: https://gist.github.com/mrdwab/14c9e81dfbc867351bd3
コメントに記載されているように、関数を使用するときに「SHEET 1」を「Sheet1」に変更する必要がある場合がありCELL_URL()
ます。
別の方法として、Unix コマンド ライン ツールを使用し、Calc を完全にバイパスします。
まず、持っている .ods を zip として解凍します。例:
$ cd /tmp
$ mkdir my_ods_unpack
$ cd my_ods_unpack
$ unzip /path/to/my.ods
解凍したら、 を調べて./content.xml
、すべての URL が二重引用符で囲まれていることに気付きます"
。grep
したがって、次の行を書くことができます。
$ grep -ro 'http[^"]*' .
./meta.xml:http://www.w3.org/1999/xlink
./meta.xml:http://purl.org/dc/elements/1.1/
./meta.xml:http://openoffice.org/2004/office
...
... に./content.xml
到達すると、ドキュメントに挿入された URL が表示されるようになります。