Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python熊猫到html样式_Python_Html_Css_Pandas_Email - Fatal编程技术网

Python熊猫到html样式

Python熊猫到html样式,python,html,css,pandas,email,Python,Html,Css,Pandas,Email,我正在尝试将csv转换为html表格,将其插入电子邮件并发送出去。我发现了一个类似的问题,似乎效果很好 我的电子邮件正在发送,但无论我做什么,我似乎都无法设计桌子。理想情况下,我想给表格添加一个彩色标题,并可能修改边框。这将是每周自动发送的东西,所以我希望它尽可能自动化 with open('fileTest.html', 'r') as f: x = f.read() f.close() html = x with open('testy.csv') as input_file:

我正在尝试将csv转换为html表格,将其插入电子邮件并发送出去。我发现了一个类似的问题,似乎效果很好

我的电子邮件正在发送,但无论我做什么,我似乎都无法设计桌子。理想情况下,我想给表格添加一个彩色标题,并可能修改边框。这将是每周自动发送的东西,所以我希望它尽可能自动化

with open('fileTest.html', 'r') as f:
    x = f.read()
f.close()
html = x

with open('testy.csv') as input_file:
    reader = csv.reader(input_file)
    data = list(reader)

#text = text.format(table=tabulate(data, headers="firstrow", tablefmt="html"))
html = html.format(table=tabulate(data, headers="firstrow", tablefmt="html"))

message = MIMEMultipart(
    "alternative", None, [MIMEText(text), MIMEText(html, 'html')])
这是我的代码示例,完整版本与我共享的链接中的答案基本相同

如果我试图在文件顶部添加一个样式标记,那么.format错误将与一个键错误一起消失

编辑

我应该提到的是,我正在将我的html从pandas生成为_html

我也试过这样做:

HTML(df.to_html(filetest.html))
下面是前几行输出的示例

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>Name of Region</th>
      <th>Number Sent To</th>
      <th>YTD Calls</th>
      <th>MTD Calls</th>
      <th>Week of</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>Windham</td>
      <td>18032515985</td>
      <td>3</td>
      <td>1</td>
      <td>0</td>
    </tr>
一个指向文档样式的链接。但是我发现它们在html=html.formattable=tabletedata,headers=firstrow,tablefmt=html行之后缺少

,为什么不做一些类似的事情呢:

style = '''
<style>
    #headings {
    font-size:26px !important;
    line-height:32px !important;
    }
</style>
'''

html = style + str(html)
message = MIMEMultipart(
    "alternative", None, [MIMEText(text), MIMEText(html, 'html')])
这将为您的表格设置样式。

要使用html样式,请使用样式


我试过了,但对表没有影响是的,我会在中编辑它。我也做了更多的研究,我将修改我的问题,因为我遗漏了一些可以帮助我的东西。我正在用pandas to_html方法生成我的html。我认为有一种方法可以改变这种风格,但我想不出来
style = '''
<style>
    #headings {
    font-size:26px !important;
    line-height:32px !important;
    }
</style>
'''

html = style + str(html)
message = MIMEMultipart(
    "alternative", None, [MIMEText(text), MIMEText(html, 'html')])
import pandas as pd

def style_line(s):
    '''Rendering odd and even rows with different color'''
    return ['background-color: #D4E6F1' if i%2!=0 else 'background-color: #85C1E9' for i in range(len(s))]


df = pd.read_csv('testy.csv')
# df.to_html('fileTest.html')
df = pd.DataFrame(df)
df = df.style.apply(style_line).render()
print(df)