Excelのリンク集をHTMLに変換するPythonスクリプト作った
はじめに
自分のよく利用するサイトはVivaldiのスピードダイヤルに登録していますが、そこに追加するほどでもないが定期的にアクセスする必要のあるサイト(主に就活のマイページ等)がいくつかあります。Excelにリンクをまとめていたのですが、いちいちExcelを起動するのは無駄だと感じていました。
そこで、HTMLで一覧表示するページを作成してスピードダイヤルに追加しておけば、ブラウジング中にExcelを起動する必要なくリンクへ移動することができると考え、HTMLで書くことにしました。
しかし、編集する際にはExcelの方が楽であるため、「Excel→HTML変換」のプログラムを作成することにしました。
できること
- ブラウザで開けるリンク集
- Excelで作成したリンク集をHTMLに変換(表形式)
- リンクの説明を記載
- リンクへジャンプする際に指定した文字列を1つコピー(ログインID等)
変換する形式
今回私の作成したPythonスクリプトでは以下の形式のExcelシートをHTMLに変換する。メモが欲しければ、これらの右隣に備考などを書くことも可能。(HTMLに反映するためには少し変更が必要)
変換後は以下のようなページとなる。Qiita
をクリックするとhttps://qiita.com/
にアクセスするとともにQiita
という文字がコピーされる。
生成されるHTML
以下の形式でリンク集を作成することにした。
<!DOCTYPE html>
<html links>
<div style="margin:20px 0">
test page<br />
<table border="1">
<tr>
<th>Qiita Home</th> <th><a href="https://qiita.com/" onclick="link_copy(this)">Qiita</a></th>
</tr>
<tr>
<th>Google Home</th> <th><a href="https://google.com/" onclick="link_copy(this)">Google</a></th>
</tr>
</table>
<script>
function link_copy(element){
let range = document.createRange();
range.selectNodeContents(element);
let selection = document.getSelection();
selection.removeAllRanges();
selection.addRange(range);
document.execCommand('copy');
}
</script>
</div>
</body>
</html>
変換器
xlrd
というExcelを読み書きするライブラリを使用することにした。
Pythonスクリプトの書き方は非常にダサいが、なんとか変換器が完成した。
import xlrd
wb = xlrd.open_workbook('links.xlsx')
sheet = wb.sheet_by_name('Sheet1')
html_header = '<!DOCTYPE html>\n<html links>\n<div style="margin:20px 0">\n<h1>' + str(sheet.cell_value(0,0)) + '</h1><br />\n'
html_footer = ' <script>\n function link_copy(element){\n let range = document.createRange();\n range.selectNodeContents(element);\n let selection = document.getSelection();\n selection.removeAllRanges();\n selection.addRange(range);\n document.execCommand("copy");\n }\n </script>\n </div>\n </body>\n </html>'
outputpath = './links.html'
with open(outputpath, mode='w') as f:
f.write(html_header)
f.write('<table border="1">')
for i in range(4, sheet.nrows):
f.write('<tr> <th>')
f.write(sheet.cell_value(i,0))
f.write('</th> <th>')
this_link = '<a href="'
this_link += str(sheet.cell_value(i,1))
this_link += '" onclick="link_copy(this)">'
this_link += str(sheet.cell_value(i,2))
this_link += '</a></th></tr>\n'
f.write(this_link)
f.write('</table>')
f.write(html_footer)
print('link collection is generated.')
生成されたHTMLファイルをブラウザのショートカットに設定することで、ブラウジングの途中に思い立った時にページリストを確認したりアクセスできる。満足。
おわりに
今回はデザインのしょぼいページを作成しましたが、今後慣れてきたらオシャレなページも作ってみたいと思っています。
Author And Source
この問題について(Excelのリンク集をHTMLに変換するPythonスクリプト作った), 我々は、より多くの情報をここで見つけました https://qiita.com/ysuzuki19/items/568b3156e4d4d006b9e6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .