我使用 Excel 建立包含一列超連結儲存格的表格。現在我想將這些資料轉換為 Wiki 表格式。如果我使用 tab2wiki (https://magnustools.toolforge.org/tab2wiki.php),我失去了超連結。有什麼工具可以在轉換中攜帶超連結?
答案1
如果您知道 wiki 程式碼中的表格是什麼樣子,則可以在 Excel 本身中建立幾乎整個表格原始碼。您將在 wiki 原始程式碼中新增的表格的開頭和結尾。例如,建立超連結類似於 A1 = [[
, B1 =目標文章名稱,C1 = ]]
,D1 == A1&B1&C1
。
答案2
最終,最好的做法是tab2wiki
透過連結處理支援來擴展該工具(原始碼這裡),特別是考慮到過去幾年通用頂級域名(TLD)的爆炸式增長。沒有什麼比編寫專門建立的程式碼來處理該問題更好的了,這比這個有限的解決方案(下面詳細介紹)可以處理的更複雜。
話雖這麼說,我能夠用正規表示式和 Perl 組合一些東西可能根據您的條件,做您需要的事情,至少如果您可以存取 Linux,或者可以將此方法適應不同的環境。我相信記事本++,在 Windows 上可用,在其查找替換工具中支援正則表達式,您也許可以調整此方法以使用帶有以下正則表達式的接口(即,將 的輸出粘貼tab2wiki
到notepad++ 中,然後在其查找替換中使用正規表示式)。
首先,輸入,提供給tab2wiki
:
lol wut noway asdf
1 no way https://www.google.com so cool https://test.net qwer zxcv
2 http://kagi.org sd
3 fd d https://netflix.org
4 fdasf f http://www.apple.org
當貼到時tab2wiki
會產生以下文字:
{| border="1" class="sortable"
!lol!!wut!!noway!!asdf
|-
|1||no way https://www.google.com so cool https://test.net||qwer||zxcv
|-
|2||||http://kagi.org||sd
|-
|3||fd||d||https://netflix.org
|-
|4||fdasf||f||http://www.apple.org
|}
此範例包括具有多個連結的儲存格、在最末端具有連結的結束儲存格以及空白儲存格。
將此文件保存在某處,a /tmp/testwikifile
,然後使用perl
的正則表達式引擎執行以下命令,遍歷並粘貼每個鏈接周圍的[
和:]
cat /tmp/testtable3 | perl -p -e 's/(http.*?)\.(com|org|net)/\[\1.\2\]/gm'
輸出:
{| border="1" class="sortable"
!lol!!wut!!noway!!asdf
|-
|1||no way [https://www.google.com] so cool [https://test.net]||qwer||zxcv
|-
|2||||[http://kagi.org]||sd
|-
|3||fd||d||[https://netflix.org]
|-
|4||fdasf||f||[http://www.apple.org]
|}
限制:
- 連結必須
http
至少以 - 需要知道連結的頂級域 (TLD) 列表
正規表示式的詳細資訊:
此正規表示式's/(http.*?)\.(com|org|net)/\[\1.\2\]/g'
可以細分如下:
- 用新字串 a la 取代輸入字串
s/start/replacement/
,並全域執行此操作g
(查找所有匹配項)。 - 搜尋
http
加上其他任何內容.*
並執行它懶洋洋?
。然後找到一個句點,然後找到、或via\.
之一。這會建立兩個捕獲組,然後我們可以在替換中使用它們。com
org
net
(com|org|net)
- 替換為
\[\1.\2\]
,是從到 期間的\1
所有內容,並且是、、 或之一。因此,“在這兩個匹配之間放置一個句點來重新建立鏈接,並用左括號和右括號填充鏈接。”http
\2
com
org
net
.
[
]