pandasのto_htmlではtableの境界線が黒の2重線になるため、任意の色で1重線にすることもできる関数を自製ライブラリpandas_exに追加しました。
引数を増やしすぎてもかえって不便ですから、border-colorはライブラリ内で設定するようにしています。
pandasでhtmlを作成する機能は見た目に関しては最低限の内容なので、自分で機能を増やす他ないです。
import pandas as pd
def to_html(df,html_name,encoding,header,index,border):
# header,index:True or False
# border:1(重線) or 2(重線)
html_string = '''
<html>
<head>
<meta charset={encoding}>
<title></title>
</head>
<body>
{table}
</body>
</html>
'''
with open(html_name,'w') as f:
f.write(html_string.format(table=df.to_html(header=header,index=index),encoding=encoding))
with open(html_name,'r') as f:
html = f.read()
if border == 1:
html_new = html.replace('border="1"','border="1" style="border-collapse: collapse; border-color: #add8e6"')
elif border == 2:
html_new = html.replace('border="1"','border="1" style="border-collapse: separate; border-color: #add8e6"')
with open(html_name,'w',encoding=encoding) as f:
f.write(html_new)
import pandas as pd
from my_library import pandas_ex as pd_ex
df = pd.read_csv("test.csv",encoding='shift_JIS')
# encodingはUTF-8,headerあり,2重線でhtmlファイルを作成
pd_ex.to_html(df,"test.html","UTF-8",True,False,2)