【问题标题】:Export Angular table to google sheet将 Angular 表导出到谷歌表
【发布时间】:2021-10-04 21:27:17
【问题描述】:

我有一个要求,我想将我的表格数据从我的 Angular 应用程序导出到谷歌表格。 我可以将其导出为 csv 格式并下载,但我无法在 Google 表格中打开它。

以下是下载 csv 的代码。

downloadDadeFile(data, filename = 'Project Database') {
    let csvData = this.ConvertToCSVDADE(data, ['deal_id', 'project_name', 'manager_name', 'manager_id', 'operational_unit', 'project_applicability', 'reason', 'qassure_flag', 'comments']);
    let blob = new Blob(['\ufeff' + csvData], { type: 'text/csv;charset=utf-8;' });
    let dwldLink = document.createElement("a");
    let url = URL.createObjectURL(blob);
    let isSafariBrowser = navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome') == -1;
    if (isSafariBrowser) {  //if Safari open in new window to save file with random filename.
      dwldLink.setAttribute("target", "_blank");
    }
    debugger
    dwldLink.setAttribute("href", url);
    dwldLink.setAttribute("id", 'a');
    dwldLink.setAttribute("download", filename + ".csv");
    var a = document.getElementsByTagName("a");
    window.open("https://docs.google.com/spreadsheets/" + a[0].getAttribute("value"), "_blank")
    dwldLink.style.visibility = "hidden";
    document.body.appendChild(dwldLink);
    dwldLink.click();
    document.body.removeChild(dwldLink);
  } 

有人可以指出正确的方向,让我在 Google 表格中打开它而不是下载它吗?

【问题讨论】:

  • 要查看工作表中的csv,我相信你必须先通过Drive,并将其转换为谷歌工作表文件
  • 您好,谢谢您的回复。能否请您指出正确的资源以供参考,我已经坚持了很长时间。

标签: javascript angular google-sheets


【解决方案1】:

在 Google 表格中,您可以使用 =IMPORTDATA("blob:<uri_of_your_blob>")

【讨论】:

【解决方案2】:

获得 .csv 文件后,您应该使用 Drive API 上传文件。如果您希望文件在 Google 表格编辑器中打开,请在上传时进行转换。

关注this documentation

使用 Node.js 的示例:

var fileMetadata = {
  'name': 'My Report',
  'mimeType': 'application/vnd.google-apps.spreadsheet'
};
var media = {
  mimeType: 'text/csv',
  body: fs.createReadStream('files/report.csv')
};
drive.files.create({
  resource: fileMetadata,
  media: media,
  fields: 'id'
}, function (err, file) {
  if (err) {
    // Handle error
    console.error(err);
  } else {
    console.log('File Id:', file.id);
  }
});

【讨论】:

  • 嘿,谢谢,我正在使用 Angular 前端和 django 后端。你能帮我解决同样的问题吗?
  • 应该不会有太大的不同。 Angular 也是基于 JavaScript 的。
  • 我已经完成了。将写一篇关于如何做同样的详细文章。
猜你喜欢
  • 2018-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-15
  • 1970-01-01
相关资源
最近更新 更多