我创建了一个表单,将所有字段数据填充到google表单中,我有一个脚本,每次编辑电子表格时,它都会将电子表格导出到csv。但是,脚本仅在图纸打开并在图纸上编辑时运行。如果我提交编辑电子表格的表单,则不会触发触发器,也不会创建csv。
在当前项目触发器下,我有要运行OneEdit的事件。
当床单未打开时,如何使触发器触发?
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Download Data",
functionName : "saveAsCSV"
}];
sheet.addMenu("Script Center Menu", entries);
};
function saveAsCSV() {
// Trash the previous csv file that was last updated.
var files = DriveApp.getFilesByName('myCSVFile.csv');
while (files.hasNext()) {
var file = files.next();
if (file.getLastUpdated()) {
file.setTrashed(true);
}
}
// Creates the file name
var fileName = ("myCSVFile");
// Check that the file name entered wasn't empty
if (fileName.length !== 0) {
// Add the ".csv" extension to the file name
fileName = fileName + ".csv";
// Convert the range data to CSV format
var csvFile = convertRangeToCsvFile_(fileName);
// Create a file in the Docs List with the given name and the CSV data
DriveApp.createFile(fileName, csvFile);
}
else {
Browser.msgBox("Error: Please enter a CSV file name.");
}
}
function convertRangeToCsvFile_(csvFileName) {
try {
var csvFile = undefined;
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var data = rows.getValues();
// Loop through the data in the range and build a string with the CSV data
if (data.length > 1) {
var csv = "";
for (var row = 0; row < data.length; row++) {
for (var col = 0; col < data[row].length; col++) {
if (data[row][col].toString().indexOf(",") != -1) {
data[row][col] = "\"" + data[row][col] + "\"";
}
}
// Join each row's columns
// Add a carriage return to end of each row, except for the last one
if (row < data.length-1) {
csv += data[row].join(",") + "\r\n";
}
else {
csv += data[row];
}
}
csvFile = csv;
}
return csvFile;
}
catch(err) {
Logger.log(err);
Browser.msgBox(err);
}
}
从上面的评论中得到帮助并调整触发器后,我有了一个解决方案。
以下是脚本:
function onEdit() {
var sheet = SpreadsheetApp.openById("id");
var entries = [{
name : "Download Data",
functionName : "saveAsCSV"
}];
sheet.addMenu("Script Center Menu", entries);
};
function saveAsCSV() {
// Trash the previous csv file that was last updated.
var files = DriveApp.getFilesByName('myCSVFile.csv');
while (files.hasNext()) {
var file = files.next();
if (file.getLastUpdated()) {
file.setTrashed(true);
}
}
// Creates the file name
var fileName = ("myCSVFile");
// Check that the file name entered wasn't empty
if (fileName.length !== 0) {
// Add the ".csv" extension to the file name
fileName = fileName + ".csv";
// Convert the range data to CSV format
var csvFile = convertRangeToCsvFile_(fileName);
// Create a file in the Docs List with the given name and the CSV data
DriveApp.createFile(fileName, csvFile);
}
else {
Browser.msgBox("Error: Please enter a CSV file name.");
}
}
function convertRangeToCsvFile_(csvFileName) {
try {
var csvFile = undefined;
var sheet = SpreadsheetApp.getActiveSheet();
var rows = sheet.getDataRange();
var numRows = rows.getNumRows();
var data = rows.getValues();
// Loop through the data in the range and build a string with the CSV data
if (data.length > 1) {
var csv = "";
for (var row = 0; row < data.length; row++) {
for (var col = 0; col < data[row].length; col++) {
if (data[row][col].toString().indexOf(",") != -1) {
data[row][col] = "\"" + data[row][col] + "\"";
}
}
// Join each row's columns
// Add a carriage return to end of each row, except for the last one
if (row < data.length-1) {
csv += data[row].join(",") + "\r\n";
}
else {
csv += data[row];
}
}
csvFile = csv;
}
return csvFile;
}
catch(err) {
Logger.log(err);
Browser.msgBox(err);
}
}
保存脚本文件后,我需要将触发器从onEdit更改为定时触发器。资源
现在,当工作表关闭时,该函数将每分钟运行并创建一个新的CSV文件。
可以将本地文档导入到幕布中,也可以将幕布中的文档导出到本地,支持Word、PDF、HTML、OPML、FreeMind等多种格式。 导入 在文档列表主页面点击「新建」,可以选择导入OPML文件(.opml格式)或者FreeMind文件(.mm格式)。 导出 在文档编辑页面点击右上角「更多」选项: 导出/下载:将该文档导出到本地,支持Word、PDF、HTML、OPML格式; 打印:使用打印机打印该
导出向导 让你从表、视图或查询结果导出数据到任何现有的格式。你可以保存设置成设置文件用作设置计划。注意:Navicat Essentials 只支持导出基于文本的文件,例如 TXT、CSV、HTML、XML 和 JSON 文件。 要打开导出向导,从对象列表工具栏点击 导出向导。 设置导出文件格式(步骤 1) 为目标文件选择一个有效的导出格式。 注意: Excel 文件格式是根据你的计算机里安装的
想要导出你的文件,你可以从菜单栏进入 文件 > 导出… (File > Export…) 或者直接单击工具栏中的导出按钮。Sketch的画布是无限的,所以导出文件时,你要告诉 Sketch 你想导出具体哪个部分。 在Sketch 3 里,我们极大改进了导出文件的流程。当你点击工具栏中的导出按钮时,Sketch 会为你列出画布、画板、切片中所有可导出的图层。你可以从中导出部分或全部的图层。值得注意的
做。 错误是:
导出(export)和导入(import)指令有几种语法变体。 在上一节,我们看到了一个简单的用法,现在让我们来探索更多示例吧。 在声明前导出 我们可以通过在声明之前放置 export 来标记任意声明为导出,无论声明的是变量,函数还是类都可以。 例如,这里的所有导出均有效: // 导出数组 export let months = ['Jan', 'Feb', 'Mar','Apr', 'Aug',
导出和导入容器 导出容器 如果要导出本地某个容器,可以使用 docker export 命令。 $ docker container ls -aCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NA
在这里,将重点关注和学习TensorFlow中的形成。这有助于了解TensorFlow中的导出模块。包含基本信息,这些信息是对先前训练过的图表进行训练,执行评估或运行推理所必需的。 以下是相同的代码片段 - 下面是一个典型的使用模型 -
任务导出:可通过文件夹操作选项 或 数据管理页面中 下方导出按钮进行导出,点击后会弹出导出弹框,可针对需求进行KML/KMZ 、SHP 、Excel 进行导出 导出成功后,会出现成功提示,失败则会出现失败提示。 注意:1. 如果导出Excel文件打开后出现中文乱码,请使用最新的Excel软件或使用其他文档编辑软件进行查看。2. 因目前主流软件的影响,软件所