首页 > 解决方案 > 如何使用 Tableau Web 数据连接器创建没有列数据类型的表格列标题?

问题描述

我第一次尝试使用 csv 文件来使用 tableau wdc。我也使用 csv 列的类型文件。但我不想使用这种类型的文件。我只想将 csv 文件与 tableau wdc 一起使用。tableau 可以知道没有数据类型属性的 csv 列类型吗?

<?php

    $id = $_GET['id'];

    $row = 1;
    $csvdata = $csvtitle = $a = array();
    if (($handle = fopen($id.".csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
           // $num = count($data);
           if($row === 1){
               $csvtitle = $data;
           }else{
               array_push($csvdata,$data);
           }
           $row++;
        }
        fclose($handle);
    }
    $csvtype = array();
    $row1 = 1;

    if (($handle = fopen($id.".txt", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $row1++;
            $csvtype = $data;
        }
        fclose($handle);
    } 
?>

(function() {
    var csvtitle = <?php echo json_encode($csvtitle); ?>;
    var csvtype = <?php echo json_encode($csvtype); ?>;
    var csvdata = <?php echo json_encode($csvdata); ?>;

    var myConnector = tableau.makeConnector();
    myConnector.getColumnHeaders = function() {
        tableau.headersCallback(csvtitle, csvtype);
    };
    myConnector.getTableData = function(lastRecordToken) {
        tableau.dataCallback(csvdata, false, false);
    };

    myConnector.init = function() {
        tableau.initCallback();
        if (tableau.phase == tableau.phaseEnum.interactivePhase) {
            tableau.submit();
        }
    };
    tableau.registerConnector(myConnector);
})();

标签: javascriptphptableau-api

解决方案


已经有一个CSV 社区提供的连接器。. 它(内部)尝试像 Tableau 一样猜测数据类型。如果它不符合您的需求,您可以使用该连接器或查看他们的代码。

您只是想在此处打开本地 CSV 文件吗?您可以改用本机连接器和/或使用 Creator 许可证(2018.1 及更高版本)将文件直接上传到 Tableau Server。


推荐阅读