首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改支配表中单元格的样式或背景(Python)

更改支配表中单元格的样式或背景(Python)
EN

Stack Overflow用户
提问于 2016-04-12 01:28:04
回答 1查看 1.8K关注 0票数 2

下面是我的csv文件中的一个示例(假设xxxx.img实际上是http://my.website.me/xxxx.img)

代码语言:javascript
复制
LHS_itemname,LHS_img, LHS_color, RHS_itemname, RHS_img, RHS_color 
backpack,    bck.img, blue     , lunchbox,     lch.img, blue
backpack,    bck.img, green    , lunchbox,     lch.img, blue

我想显示这个csv作为一个HTML表格,其中每个图像url可以从网络抓取使用web url和显示在表内。如果LHS_color与RHS_color相同,我希望表中的该行具有灰色背景。

下面是我到目前为止在Python中使用dominate包的情况:

代码语言:javascript
复制
import os
import os.path
import sys
import csv
import urllib
import re
import glob
import numpy as np
from dominate import document
from dominate.tags import *
import dominate

为输入csv和输出html设置名称(称为inFileName和outFileName)

代码语言:javascript
复制
f = open(inFileName, 'rb')  # Path to csv file
reader = csv.reader(f)
header = ['LHS_itemname','LHS_img', 'LHS_color', 'RHS_itemname', 'RHS_img', 'RHS_color']
with document(title='ItemsBoughtTogether') as doc:
h1('ItemsBoughtTogether', align = 'Center')
with table(border='1').add(tbody()):

    l = thead().add(tr())
    for col in header:
        print col
        l += td(p(b(str(col))))

    l = thead().add(tr())
    for row in reader:
        l = tr()
        l += td(p(row[0], ALIGN='Center'))
        l += td(p(row[1], ALIGN='Center'))
        l += td(div(img(src=row[2]), _class='photo', ALIGN='Center')) # img LHS
        l += td(p(row[3], ALIGN='Center'))
        l += td(p(row[4], ALIGN='Center'))
        l += td(div(img(src=row[6]), _class='photo', ALIGN='Center')) # img RHS
        if row[2] == row[5]: {background-color:'grey'}

这最后一条if语句是我不知道如何在语法上放进去的。我很难找到html表格的主要例子,所以如果有人有很好的资源,请评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-12 01:44:50

我从来没有使用主导,但它通常是可取的使用样式表的css属性(如背景颜色)。我只需要在这里包含一个外部样式表,如果该行满足您的条件,就给它一个特定的类。

例如:style.css:

代码语言:javascript
复制
.grey_background {
    background-color: grey;
}

添加一个链接(在with document(title...行之后):

代码语言:javascript
复制
with doc.head:
    link(rel='stylesheet', href='style.css')

最后,添加类-而不是:l = tr(),执行如下操作:

代码语言:javascript
复制
l = tr(_class='grey_background') if row[2] == row[5] else tr()

编辑:或者,用于内联样式的

由于它似乎支持关键字,下面的工作应该是可行的:

代码语言:javascript
复制
l = tr(style="background-color: grey") if row[2] == row[5] else tr()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36562080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档