twbparser



Parse Tableau TWB/TWBX files in R: extract
datasources, joins, relationships, fields, and calculated
fields, plus inspect and unpack TWBX assets.
Built for large workbooks and Shiny integration.
Features
- TWB/TWBX: open packaged workbooks and auto‑extract
the largest
.twb
- Relationships & joins: parse legacy joins and
modern (2020.2+) relationships
- Calculated fields / parameters: list formulas,
datatypes, roles, and parameter metadata
- Datasources: connection classes/targets, inferred
locations, field counts
- Dependency graph: build/plot field dependency
DAGs
- TWBX assets: list/extract images, extracts, text
files, etc.
Installation
# Install from GitHub (using pak)
install.packages("pak")
pak::pak("PrigasG/twbparser")
# Or using devtools
install.packages("devtools")
devtools::install_github("PrigasG/twbparser")
Quick Start
Parse a “.twb” file
library(twbparser)
# Parse workbook
parser <- TWBParser$new("path/to/workbook.twb")
# Extract calculated fields
calc_fields <- parser$get_calculated_fields()
# View dependencies
deps <- parser$get_field_dependencies()
# Generate DAG
dag <- parser$generate_dag()
Parse a “.twbx” file
parser <- TWBParser$new("path/to/workbook.twbx")
# Inspect manifest
parser$twbx_manifest
# Extract data sources
sources <- parser$get_datasource_details()
And graph objects (via igraph or ggraph) for visualization:
Rscript -e "twbparser::parse_twb('my_dashboard.twb', output_dir = 'results/')"
Integration Examples
- R Shiny: Build an interactive dashboard showing calculations,
filters, and DAG visualizations.
- Power BI: Export calculated field logic to replicate measures in
DAX.
- Data lineage: Combine with DiagrammeR or visNetwork for workflow
diagrams.
What’s new (0.2.0)
- Custom SQL extraction: twb_custom_sql()
- Initial SQL extraction: twb_initial_sql()
- Published datasource detection: twb_published_refs()
- Pretty formulas: tableau_formula_pretty(),
prettify_calculated_fields()
- Optional Server/Cloud helpers: tbs_publish_info(),
tbs_custom_sql_graphql()
Contributing
- Fork the repo
- Create a feature branch (git checkout -b feature/new-feature)
- Commit changes (git commit -m ‘Add new feature’)
- Push branch (git push origin feature/new-feature)
- Open a Pull Request
License
This package is licensed under the MIT License — see the LICENSE file
for details.