在 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"));
参考:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。
我下载了一个 .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"));
参考:
如果我误解了您的问题并且这不是您想要的方向,我深表歉意。