在 Google 驱动器上打开伪 HTML.XLS

opening pseudo HTML .XLS on Google drive

我下载了一个 .xls 文件,但无法在 Google 表格中正常打开它。

我看到一些类似于 HTML 的代码,其中包含数字,但无法使用简单的 HTML 查看器进行解析。

这是一个example

有没有办法使用应用程序脚本打开它?那将是最好的。谢谢

  • 您想在 Google 电子表格中查看 https://drive.google.com/file/d/1_sPnJmY7l8krUulS6EoBIvKqSfxbQLW-/view?usp=sharing 的文件。
  • 您想使用 Google Apps 脚本实现此目的。

如果我的理解是正确的,这个答案怎么样?请将此视为几个可能的答案之一。

问题与解决方案:

当我看到您的共享文件时,发现该文件是 HTML 数据的一部分,包括 table。该文件不是 Excel 文件。但是 mimeType 是 application/vnd.ms-excel。通过这种方式,该文件无法在浏览器中看到并转换为 Google 电子表格。

为了使用 Google 电子表格查看共享文件 table 的数据,如何从文件中检索 table 并将其放入 Google 电子表格?这样,您可以使用 Google 电子表格查看它。

示例脚本:

请将以下脚本复制并粘贴到 Google Apps 脚本和 enable Sheets API at Advanced Google services 的脚本编辑器中。然后,运行myFunction.

的函数
function myFunction() {
  var fileId = "1_sPnJmY7l8krUulS6EoBIvKqSfxbQLW-";  // From the URL of https://drive.google.com/file/d/1_sPnJmY7l8krUulS6EoBIvKqSfxbQLW-/view?usp=sharing

  var html = DriveApp.getFileById(fileId).getBlob().getDataAsString();
  var table = html.match(/<table[\w\s\S]+?<\/table>/gi)[0];
  var ss = SpreadsheetApp.create("sampleSpreadsheet");
  var sheetId = ss.getSheets()[0].getSheetId();
  var resource = {requests: [{pasteData: {html: true, data: table, coordinate: {sheetId: sheetId, rowIndex: 0}}}]};
  Sheets.Spreadsheets.batchUpdate(resource, ss.getId());
}
  • 当你 运行 脚本时,新的 Google 电子表格被创建到根文件夹并将共享文件中的 table 放入电子表格。

注:

  • 比如想简单的确认HTML文件为PDF文件,也​​可以使用下面的脚本

    var fileId = "1_sPnJmY7l8krUulS6EoBIvKqSfxbQLW-";  // From the URL of https://drive.google.com/file/d/1_sPnJmY7l8krUulS6EoBIvKqSfxbQLW-/view?usp=sharing
    var blob = DriveApp.getFileById(fileId).getBlob().setContentType(MimeType.HTML).getAs(MimeType.PDF);
    DriveApp.createFile(blob.setName("sampleDocument"));
    

参考:

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