【问题标题】:Javascript API for TableauTableau 的 Javascript API
【发布时间】:2016-09-10 08:04:50
【问题描述】:

我有一个带有

的表格工作簿
  • 2 张
    • 条形图(称为 BAR 的工作表)
    • 饼图(称为 PIE 的工作表)
  • 2 仪表板
    • 条形图全屏(表名为 FULLBAR)
    • 饼图全屏(表名为 FULLPIE)

现在我正在尝试将它们加载到带有按钮的 HTML 页面中,以便在仪表板之间切换。我按照教程进行操作,它可以很好地拉入初始仪表板(FULLBAR),但是仪表板的切换是我遇到问题的地方。

单击链接进行切换时,我在控制台中收到此错误

Error: Sheet is not found in Workbook

这是我的代码(服务器显然是 XXXX 的)

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Proof of Concept</title>
        <meta name="description" content="Proof of Concept">
        <meta name="author" content="thisDude">

        <script type="text/javascript" src="http://xxx.xxx.xxx.xxx:xxxx/javascripts/api/tableau-2.0.0.js"></script>

        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
        <script type="text/javascript" src="js/bootstrap.js"></script>
        <script type="text/javascript" src="js/app.js"></script>
        <link rel="stylesheet" type="text/css" href="css/bootstrap.css">
        <link rel="stylesheet" type="text/css" href="css/style.css">

</head>
<body>
    <div class='container'>
        <div class='row'>
            <div class='span3 col-xs-6'><img style="height:39px; width:100px;" src="logo.jpg" ></div>
            <h2 class='col-xs-6 span7 pagination-centered'>Proof of Concept</h2>
        </div>
        <div class='row'>
            <h3 class='offset3 span7 pagination-centered' id='sheetName'></h3>
        </div>
        <div class='row'>

            <!-- All of our work will happen here -->
            <!-- Viz located at http://xxx.xxx.xxx.xxx:xxxx/views/TEST_VIS2/FULLBAR -->
            <ul id = 'menu' class='nav nav-list offset1 span2'>
                <!-- This is the menu where we will add all of our buttons. -->
                <li class='nav-header'>Switching Views</li>
                <li><a onClick="switchView('FULLBAR')">Bar Chart</a></li>
                <li><a onClick="switchView('FULLPIE')">Pie Chart</a></li>                
            </ul>
            <div id='tableauViz'></div>
            <script>
            </script>


            <!-- This is the end of the section where we will do our work. -->
        </div>
    </div>
</body>
</html>

还有我的 app.js 代码:

window.onload=function() {
    var vizDiv = document.getElementById('viz');
    var vizURL = "http://xxx.xxx.xxx.xxx:xxxx/views/TEST_VIS2/FULLBAR_1";
    var options = {
        width: '100%',
        height: '500px',
        hideToolbar: true,
        hideTabs: true
    };

    viz = new tableauSoftware.Viz (vizDiv, vizURL, options);
};

function switchView(sheetName) {
    workbook = viz.getWorkbook();
    workbook.activateSheetAsync(sheetName);
    console.log(sheetName);
    console.log(workbook + " workbook var");
    console.log(viz.getWorkbook() + " viz.getWorkbook var");
}

【问题讨论】:

    标签: javascript tableau-api


    【解决方案1】:

    找到答案了——

    我最初发布到服务器时已取消选择“将工作表显示为选项卡”选项。我的 javascript 也在使用 hideTabs: true。

    这样做会导致 JS api 不知道工作表的名称。

    通过在发布“将工作表显示为选项卡”期间选择该选项,API 能够正确切换可视化。 js 选项“hideTabs: true”仍然隐藏可视选项卡。

    【讨论】:

    • 谢谢!你给了我时间。
    【解决方案2】:

    我的 tableau 公共帐户中有三张工作表。我创建了两个按钮并描述为 java 脚本文件,如下所示。

    function switchView(sheetName) { var workbook = viz.getWorkbook(); workbook.activateSheetAsync(sheetName); } ` 点击按钮后不执行任何操作。

    【讨论】:

    • 我也面临同样的问题。你找到问题了吗@user12306765
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多