Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 将阵列转换为blob,将blob转换为传统XLS文件_Excel_Google Apps Script_Google Drive Api_Xls - Fatal编程技术网

Excel 将阵列转换为blob,将blob转换为传统XLS文件

Excel 将阵列转换为blob,将blob转换为传统XLS文件,excel,google-apps-script,google-drive-api,xls,Excel,Google Apps Script,Google Drive Api,Xls,我有一个生成2D数组的应用程序脚本。我想以legacy.XLS格式将此阵列导出到Google Drive上的文件夹中,理想情况下不需要先创建Google工作表,然后再转换该工作表 我想我可以将我的数组转换成CSV字符串,并将其转换为具有适当MimeType的blob,然后将其保存在驱动器中 但是,当我从驱动器下载文件并打开它时,这些值并没有分开(尝试使用“;”作为分隔符) 下面是我的脚本,以简化数组为例 function createXls() { var data = [["a&qu

我有一个生成2D数组的应用程序脚本。我想以legacy.XLS格式将此阵列导出到Google Drive上的文件夹中,理想情况下不需要先创建Google工作表,然后再转换该工作表

我想我可以将我的数组转换成CSV字符串,并将其转换为具有适当MimeType的blob,然后将其保存在驱动器中

但是,当我从驱动器下载文件并打开它时,这些值并没有分开(尝试使用“;”作为分隔符)

下面是我的脚本,以简化数组为例

function createXls() {
var data = [["a","b","c"],["d","e","f"]];
var csvString = toCsv(data);

var xlsName = "here goes the filename";
var driveFolder = DriveApp.getFolderById("hereGoesTheFolderId");

var blob = Utilities.newBlob(csvString, MimeType.MICROSOFT_EXCEL_LEGACY);

blob.setName(xlsName + ".xls");
driveFolder.createFile(blob);

};

function toCsv(arr) {
    return arr.map(row =>
        row.map(val => val).join(';')
    ).join('\n');
};
我是否在这里遗漏了什么,或者在将数据首先放在一张表中并将该表转换为xls时没有什么需要考虑的


谢谢大家!

有关XLS数据的结构,请参见。因此,我认为使用脚本创建的文件是CSV文件,mimeType为XLS。由此,我认为该文件无法打开。但不幸的是,谷歌电子表格似乎无法直接导出为XLS格式。如果您想从Google电子表格检索XLS数据,我认为可能需要从电子表格导出的XLSX数据检索XLS数据。我为此道歉。