如何使用Tableau Web数据连接器创建没有列数据类型的Tableau列标题?

时间:2019-04-25 06:53:21

标签: javascript php tableau

我正在尝试使用csv文件首次使用tableau wdc。我也使用csv列的类型文件。但是我不想使用这种类型的文件。我只想使用带有tableau wdc的csv文件。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);
})();

1 个答案:

答案 0 :(得分:0)

已经有一个CSV community provided connector.。它(内部)试图像Tableau一样猜测数据类型。您可以使用该连接器,也可以查看不符合您需求的代码。

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