如何在Google Visualization API中强制dataTableToCsv方法转义井号标签 修改后的脚本:参考文献:

当dataTableToCsv方法遇到“#”时,它将停止 因为这是Google定义的方法,所以逃避此符号甚至更正的最佳方法是什么?

csvContent = csvColumns + google.visualization.dataTableToCsv(data);

这是一个测试。请注意,在此示例中,它将停止在D列的第二行。

google.charts.load('current',{
  callback: drawBasic,packages: ['table']
});

function drawBasic() {
  var query = new google.visualization.Query(
    'https://docs.google.com/spreadsheets/d/1w1vaFAPTE440jc2cpYGftXSaPwGxU_x7iQRSGK35oYc/edit#gid=0'
  );
  query.setQuery('SELECT *');
  query.send(handleQueryResponse);
}

function handleQueryResponse(response) {
  if (response.isError()) {
    alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage());
    return;
  }


  var data = response.getDataTable();
  var options = {
    title: 'test'
  }

  var chart = new google.visualization.Table(document.getElementById('chart_div'));
  chart.draw(data,options)
  
   $('#Export').on('click',function () {
    var csvColumns;
    var csvContent;
    var downloadLink;
    var fileName;

    // build column headings
    csvColumns = '';
    for (var i = 0; i < data.getNumberOfColumns(); i++) {
      csvColumns += data.getcolumnLabel(i);
      if (i < (data.getNumberOfColumns() - 1)) {
        csvColumns += ',';
      }
    }
    csvColumns += '\n';

    // build data rows
    csvContent = csvColumns + google.visualization.dataTableToCsv(data);

    // download file

    fileName = 'data.csv';

      downloadLink = document.createElement('a');
      downloadLink.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvContent);
      downloadLink.download = fileName;
      raiseEvent(downloadLink,'click');
      downloadLink = null;

 function raiseEvent(element,eventType) {
    var eventRaised;
    if (document.createEvent) {
      eventRaised = document.createEvent('MouseEvents');
      eventRaised.initEvent(eventType,true,false);
      element.dispatchEvent(eventRaised);
    } else if (document.createEventObject) {
      eventRaised = document.createEventObject();
      element.fireEvent('on' + eventType,eventRaised);
    }
  }

});
  
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
 <button id="Export" title="Download to CSV">Download to CSV</Button>
<div id="chart_div"></div>

gwg81 回答:如何在Google Visualization API中强制dataTableToCsv方法转义井号标签 修改后的脚本:参考文献:

  • 您想将电子表格的值下载为CSV文件。
  • 在当前问题中,CSV数据未完成。这是“它将在D列第二行停止”。

如果我的理解是正确的,那么该修改如何?请认为这只是几个答案之一。

发现当我看到csvContent中的csvContent = csvColumns + google.visualization.dataTableToCsv(data);时,CSV数据具有电子表格中的全部值。因此,在此修改中,csvContent被转换为blob并被下载。

修改后的脚本:

修改脚本后,请进行以下修改。

从:
downloadLink.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvContent);
至:
downloadLink.href = URL.createObjectURL(new Blob([csvContent],{type: "text/csv"}));

downloadLink.href = window.URL.createObjectURL(new Blob([csvContent],{type: "text/csv"}));

参考文献:

如果我误解了您的问题,而这不是您想要的方向,我深表歉意。

本文链接:https://www.f2er.com/3141051.html

大家都在问