【问题标题】:Google visualization export DataView to ExcelGoogle 可视化将 DataView 导出到 Excel
【发布时间】:2018-05-10 01:12:32
【问题描述】:

我正在寻求有关为用户提供单击按钮以将图表/表格后面的 DataView 导出到 Excel 的最佳做法的建议。

我查看了Toolbar 功能,但发现这不起作用,因为DataView 是“手动填充的”,而不是 API 所需的 URL。 (如果我的理解有误,请纠正我。)

我更喜欢遵循/使用该领域常见的方法。

建议?

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题与 Stack Overflow 无关 - 查看@987654322 @,我还在使用的一个老方法是从数据中生成一个xml文档,使用XML Spreadsheet 2003格式,默认会在Excel中打开……
  • 我不知道。 -- 谢谢你的提示 :-)

标签: javascript json google-visualization export-to-excel


【解决方案1】:

这就是我为感兴趣的人解决它的方法。

HTML:

<div id="div_table"></div>
<a id="exportCSV" href="">Excel</a>

我的表格对象是.ChartWrapper,所以我可以稍后使用.getDataTable() 方法。

var table = new google.visualization.ChartWrapper({
    chartType: 'Table',
    containerId: 'div_table',
    options: {allowHtml: true}
});

JavaScript - Google 可视化事件监听器

document.getElementById("exportCSV").addEventListener("click", function () {
    var csvData = table.getDataTable(); //google visualization DataTable to download
    export_CSV("exportCSV", csvData);
});

Javascript-函数源码https://stackoverflow.com/a/42956427/7763687

function export_CSV(elementID, data) {

    var csvColumns;
    var csvContent;
    var downloadLink;

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

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

    //New Download Link - works in chrome and mozilla
    downloadLink = document.getElementById(elementID);
    downloadLink.href = 'data:text/csv;charset=utf-8,' + encodeURI(csvContent);
    downloadLink.download = 'data.csv';
    downloadLink.target = '_blank';
}

这适用于我的应用程序。干杯!

【讨论】:

  • 我正在尝试做同样的事情并尝试使用您的代码,但我一定是引用了错误的表格,因为我不断收到Uncaught TypeError: table.getDataTable is not a function(我的 DataTable 句柄是表格)-您可以添加您的更多上下文的数据表设置?
  • 上述代码有效,因为我们使用.ChartWrapper 来构建表。我将我的表格对象添加到答案帖子中以进行澄清。您还可以查看 Google 文档 here 中的方法 .getDataTable()。您可以在我在答案帖子中引用的堆栈溢出链接中看到使用.ChartWrapper 的工作示例。希望这会有所帮助。
猜你喜欢
  • 2022-10-24
  • 1970-01-01
  • 1970-01-01
  • 2018-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-29
  • 1970-01-01
相关资源
最近更新 更多