
在零售行业进行产品分析时,可能需要在表格展示图片,以下列举五种方案。

正式开始之前确保产品资料表有产品图片列,产品图片可以是图床URL也可以是本地图片转Base64。

第一种方式是内置表格条件格式图标插入产品图片,效果如下:

设置方法是为产品ID列的条件格式引用图片列:

这个方案最简单,缺点是图片看上去很小。
第二种方式是直接把图片列放在内置表格列:

存放之前需要将图片列标记为图像URL:

效果如下:

图像的显示大小可以在视觉对象的格式设置区域调整:

这种方案改进了图片大小问题,但是非图片列无法垂直居中,看上去不美观于是引入第三种方案-HTML表格。新建HTML度量值:
HTML.表格.产品列表 =
VAR Table_Value =CONCATENATEX('产品资料',"
<tr>
<td> <img src='" & [图片] & "' alt='产品图片' width='80' height='50'></td>
<td>" & [产品ID] & "</td>
<td>" & FORMAT([上市日期],"YYYY-MM-DD") & "</td>
<td>" & FORMAT([零售价],"#,#") & "</td>
<td>" & FORMAT([M.销售额],"#,#") & "</td>
</tr>")
VAR Table_Header = "
<tr>
<th>产品图</th>
<th>产品ID</th>
<th>上市日期</th>
<th>零售价</th>
<th>销售额</th>
</tr>"
--以上两个参数确定表格内容和标题
VAR HTML_Code = "
<style>
table {
font-family: Arial, sans-serif;
font-size: 16px;
border-collapse: collapse;
width: 100%;
}
th, td {
padding: 8px;
border: 1px solid #ddd;
word-wrap: break-word;
text-align: center;
}
th {
background-color: #f2f2f2;
}
</style>
<table class='w-tooltip'> " & Table_Header & Table_Value & "</table>"
RETURN
HTML_Code度量值存入HTML Content视觉对象,得到:

图片大小可以通过度量值img标签中的width、height参数调整,文本列也实现了垂直居中,看上去很整齐。
这种方案的缺点是代码有点长,有点学习成本。接下来引入第四种方案-Markdown表格。新建Markdown度量值:
MD.产品表格 = "
| 产品图 | 产品ID | 上市日期 | 零售价 | 销售额 |
|---|---|---|---|---|
|" & CONCATENATEX (
'产品资料',
"![" & [产品ID] & "](" & [图片] & ")|`" & [产品ID] & "`|" & FORMAT([上市日期],"YYYY-MM-DD") & "|" & FORMAT ( [零售价], "#,#" ) & "|" & FORMAT([M.销售额],"#,#") & "|",UNICHAR(10))将度量值放入Markdown视觉对象:

可以看到效果有点糟糕,尽管文本列实现了垂直居中,但是图片大小无法调整。

接下来引入第五种方案,Markdown嵌入HTML的img标签,这样既解决了图片大小问题,又实现文本列垂直居中,并且代码还短。度量值如下:
MD.产品表格2 = "
| 产品图 | 产品ID | 上市日期 | 零售价 | 销售额 |
|---|---|---|---:|---:|
|" & CONCATENATEX (
'产品资料',
"<img src='" & [图片] & "' alt='产品图片' width='80' height='40'>|`" & [产品ID] & "`|" & FORMAT([上市日期],"YYYY-MM-DD") & "|" & FORMAT ( [零售价], "#,#" ) & "|" & FORMAT([M.销售额],"#,#") & "|",UNICHAR(10))依然放入Markdown视觉对象:

综上,推荐第五种方案。