当前位置: 首页 > news >正文

python tableau自动化导出_使用 Python 导出 Tableau 自定义形状 (Extracting Tableau Custom Shapes Using Python)...

Why

有些时候,我们收到其他人发来的 Tableau 文件,工作簿里面嵌入了一些自定义的形状,但是当我们需要在新的工作簿里面应用这些形状图片时,发现没有导出的端口,不过方法还是有的,用下面的 Python 代码就可以提取自定义形状图片了,注意请先设置好 twb 的路径变量。希望对有需要的朋友有帮助。

方案思路: twb 文件本身为 utf-8 编码的 xml 文件,而自定义形状图片以 base64 编码存储在 shapes 节点。

Code

# -*- coding: utf-8 -*-

"""Extracting Tableau Custom Shapes

NOTE: This code is only support for Tableau "*.twb" files.

"*.twbx" file is compressed, you need save it as "*.twb" file first.

Please input your filepath below then launch it, all my best wishes.

功能:导出 Tableau 自定义形状,执行前需要保存为 twb 文件并修改下面变量。

Contributor: MoonYear530, Stanley Hwang, 2020/9/11.

"""

from xml.etree import ElementTree as ET

from os import path

from os import makedirs

from base64 import b64decode

# Please input your filepath HERE:

twb = ET.parse("tableau_workbook.twb")

root = twb.getroot()

folder = "Extractive/" # for Extractive Custom Shapes

for shape in root.findall("./external/shapes/shape"):

filename = shape.attrib["name"]

subfolder = folder + filename.split(r"/", 1)[0]

try:

if not path.exists(subfolder):

makedirs(subfolder)

img_bytes = b64decode(

shape.text.replace(" ", "").replace(r"\n", ""))

with open(folder + filename, "wb") as icon:

icon.write(img_bytes)

except Exception:

continue

tag: Python, Tableau, How To, Image, Custom Shapes

相关文章:

  • tableau三轴该怎么做_在视图中为多个度量添加轴
  • 投资者的七个等级
  • python正则表达读取word_python 正则表达
  • python中土耳其编码范围_Python-编码这趟浑水
  • 做聪明的人很容易,但做善良的人很难
  • webis个人主页设计_个人网页(个人主页)设计论文
  • [个人] 确立了新的研究方向
  • java读书心得_范文精选-读书心得体会-java夜未眠读书心得
  • 经典导航菜单脚本收藏
  • axure 导入元件库显示不出白框_如何用Axure画出Web后台产品的面包屑组件
  • Oracle常用命令
  • echarts 使用热力图 如何能做到在每一个热力点的方格内显示自己需要的数据_3种高级分析型图表,直观解读数据,手把手教你制作...
  • 什么叫h5项目_揭秘使用H5自适应建设网站有哪些优势
  • Windows Mobile 5.0 认知篇
  • 一个手机号注册2个抖音_一个手机号码可以注册多个微信号
  • Android 控件背景颜色处理
  • Android优雅地处理按钮重复点击
  • axios请求、和返回数据拦截,统一请求报错提示_012
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • CSS 提示工具(Tooltip)
  • es6要点
  • Invalidate和postInvalidate的区别
  • JavaScript 基本功--面试宝典
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • mysql 数据库四种事务隔离级别
  • mysql常用命令汇总
  • php ci框架整合银盛支付
  • php面试题 汇集2
  • php中curl和soap方式请求服务超时问题
  • Vue 2.3、2.4 知识点小结
  • 创建一种深思熟虑的文化
  • 如何用vue打造一个移动端音乐播放器
  • 入职第二天:使用koa搭建node server是种怎样的体验
  • 什么是Javascript函数节流?
  • 微信公众号开发小记——5.python微信红包
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 详解NodeJs流之一
  • 【云吞铺子】性能抖动剖析(二)
  • 阿里云API、SDK和CLI应用实践方案
  • ​ArcGIS Pro 如何批量删除字段
  • ​油烟净化器电源安全,保障健康餐饮生活
  • ## 临床数据 两两比较 加显著性boxplot加显著性
  • $(function(){})与(function($){....})(jQuery)的区别
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (二)什么是Vite——Vite 和 Webpack 区别(冷启动)
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十一)手动添加用户和文件的特殊权限
  • (算法)Travel Information Center
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (中等) HDU 4370 0 or 1,建模+Dijkstra。
  • (转)h264中avc和flv数据的解析
  • (转载)hibernate缓存