Google Docs 中的自动增量文件名?

2023-12-22

如何为我的所有帐户向文档添加功能,当我打开新文档的文件时,它希望找到我现在所在的文件夹 + 最后一个文件名并递增 1 并保存。

对于默认的 Google 文档,保存名为“无标题文档”的文档,但我希望它保存它:

文件夹_1.1001.doc
文件夹_1.1002.doc

如果我在下一个文件夹 2 中创建文件:

文件夹_2.001.doc
文件夹_2.002.doc。

我的错误代码:

// Show current folder name & root folder name
function makeFilename() {

  // Get current folder name
  var ui = DocumentApp.getUi();
  thisFileId = DocumentApp.getActiveDocument().getId();

  var thisFile = DriveApp.getFolderById(thisFileId);
  var parentFolder = thisFile.getParents();
  var currentFolderName = parentFolder.next();
  ui.alert(currentFolderName);

  // get all files in currentFolderName
  var files = parentFolder;
  while (files.hasNext()) {
    var file = files.next();  
   //  Logger.log(file.getName());
   DocumentApp.getUi().alert(file.getName());
  }
}

这是示例代码:

// Show current folder name 
function makeFilename() {

  // Get current file name
  const ui = DocumentApp.getUi(),
    doc = DocumentApp.getActiveDocument(), //Added
    thisFileId = doc.getId(),
    thisFileName = doc.getName();

  const thisFile = DriveApp.getFileById(thisFileId);//Modified from getFolderById
  const parentFolder = thisFile.getParents();
  const currentFolder = parentFolder.next();//Modified from currentFolderName
  const currentFolderName = currentFolder.getName();//Added
  //ui.alert(currentFolderName);

  /*Store a init file in root to getLatestFileNumber*/
  var initIter = DriveApp.getFilesByName(currentFolderName + 'init000'),
    initBool = initIter.hasNext(),
    init;
  if (!initBool) {
    init = DriveApp.createFile(currentFolderName + 'init000', '0');
  } else {
    init = initIter.next();
  }

  /*Get current Number and format it to 4 digits*/
  var currentNum = init.getBlob().getDataAsString() * 1 + 1,
    formatNum = ('00000' + currentNum).substr(-4);

  /*If filename already contains folderName, do nothing*/
  if (!(thisFileName.search(currentFolderName) + 1)) {
    doc.setName(currentFolderName + formatNum).saveAndClose();
    init.setContent(currentNum);
  }
}

参考:

  • File https://developers.google.com/apps-script/reference/drive/file
  • 文档#setName https://developers.google.com/apps-script/reference/document/document#setName(String)
  • Blob https://developers.google.com/apps-script/reference/base/blob
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Docs 中的自动增量文件名? 的相关文章

随机推荐

  • 仅获取所有父级 WooCommerce 类别

    我正在尝试获取 WooCommerce 的所有父类别 而不是子类别 terms get terms taxonomy gt product cat hide empty gt false parent gt 0 但它不起作用 如何仅获取父类
  • 如何根据列的顺序添加自增主键?

    我需要将自动增量 id 添加到已有的表中 我做了 ALTER TABLE table name ADD column name INT NOT NULL AUTO INCREMENT FIRST ADD PRIMARY KEY column
  • 取消选择 RowDetailsTemplate 后调整数据网格高度

    我正在使用 RowDetailsTemplate 显示行的嵌套数据网格 现在 当我选择一行来显示此嵌套数据网格时 数据网格的高度会扩展 但当取消选择该行时 它不会减少其高度 有没有办法在行详细信息折叠后将数据网格大小调整为其原始高度 是否可
  • 多对多关系的复选框

    class PlayerProfile lt ActiveRecord Base has many playing roles has many player roles through playing roles accepts nest
  • Magento 1.6.2 无法重新索引产品平面数据

    我们的 magento 1 6 2 无法重新索引产品平面数据 有时它还会显示 重新索引过程存在问题 我根据其他用户的经验尝试了很多解决方案 没有结果 我们进口了散装产品 但我们不确定这是重新索引问题的原因 理想的解决方案是什么 这是我在 s
  • 在版权符号之前插入特殊字符“”

    我们的源代码在每个 CSS 文件的顶部都包含版权 版权所有 每次 Firefox 样式编辑器加载 CSS 文件时 都会在版权符号之前插入一个特殊字符 版权所有 每次加载文件时它都会添加一个额外的特殊字符 我不认为这仅限于 Firefox 但
  • 将位图传递给在 logcat 上获取消息的其他活动 FAILED BINDER TRANSACTION

    当我将位图图像传递给其他活动时 我在 logcat 上收到 mag 03 20 12 06 56 553 E JavaBinder 280 FAILED BINDER TRANSACTION 它发生在大尺寸图像上 小尺寸图像运行良好 我该怎
  • 尝试使用实体框架保存大型 xml 时出现“ORA-00932:不一致的数据类型:预期的 NUMBER 获得 NCLOB”错误

    当我尝试使用 ADO NET 实体框架将具有大型 xml 的新记录插入具有 XmlType 列的 oracle 表时 出现以下错误 Oracle DataAccess Client OracleException Message ORA 0
  • 展开 pandas 数据框列中字典的嵌套列表

    我有一个名为 leads 的数据帧 是通过将 SFDC SOQL 的输出保存到数据帧中而得到的 我一直在尝试扩展 Leads r record 列 Company Month Amount Leads r done Leads r reco
  • 使用 ZeroMQ 的 C++ RPC 框架

    我需要使用 ZeroMQ 推拉套接字模式用 C 编写客户端 服务器应用程序 客户端必须对服务器接口中指定的函数进行 RPC 调用 我想知道是否有一个开源且商业可用的库 框架主要用于此目的 主要是 C 我做了一些谷歌搜索 似乎有一些用 pyt
  • Chrome 浏览器 - navigator.language 不返回国家/地区代码

    自最近几个月以来 我在从 window navigator language 检测 CountryCode 时遇到问题 我当前在 Chrome 上的语言是法语 瑞士 目前它仅返回语言 window navigator language fr
  • 通过列索引而不是列名称调用数据框中的列 - pandas

    如何使用数据框中的索引而不是名称来调用代码中的列 例如我有数据框df有柱子a b c 而不是打电话df a 我可以使用它的列索引来调用它吗df 1 您可以使用iloc http pandas pydata org pandas docs v
  • 即使使用代理,Nodejs 也不会为 React CRA 应用程序设置 cookie

    我有一个nodejs express React CRA 应用程序 我正在尝试从nodejs 设置一个cookie 服务器位于端口 4001 因此在我的 React 应用程序的 project json 中我有 proxy http loc
  • 如何制作操作系统启动时启动的启动程序

    假设我有一个 C 程序可以执行某些操作 我希望该程序继续自行运行或在计算机启动时自动开始执行 我怎样才能使这个程序不可检测 即它不能在任务管理器的进程列表中被检测到 假设我有一个在 Windows 窗体上显示随机数的程序 for Rando
  • 为什么scala不进行尾调用优化?

    只是玩延续 目标是创建将接收另一个函数作为参数和执行量的函数 并返回将应用参数给定次数的函数 实现看起来很明显 def n times T func T gt T count Int T gt T tailrec def n times c
  • Opera 框架有BUG吗?

  • 使用 MemberwiseClone 实现撤消/重做

    我正在尝试在 C 应用程序中实现撤消 重做堆栈 方法是在调用撤消时将对象恢复到之前的状态 我有一个 Action 类 基本上如下所示 class Action object old state object new state public
  • Android:是否可以将两个表面视图放在一起?

    我的想法是有两个表面视图 一个 SurfaceView 将保存图像 例如 ImageSurgaceView 第二个表面位于第一个表面之上 该表面保存注释 例如 AnnotationSurfaceView 如圆形 矩形等 现在我必须映射这些表
  • 标签应该使用逗号还是空格

    对于标记用户界面小部件是否应该需要逗号或空格作为分隔符 您有何看法 例如 该网站使用空格 需要多字标签才能使用连字符 我以为这是 Joel 的一些设计建议 但后来我意识到 Facebook 和 Wordpress 使用逗号 那么应该是什么呢
  • Google Docs 中的自动增量文件名?

    如何为我的所有帐户向文档添加功能 当我打开新文档的文件时 它希望找到我现在所在的文件夹 最后一个文件名并递增 1 并保存 对于默认的 Google 文档 保存名为 无标题文档 的文档 但我希望它保存它 文件夹 1 1001 doc文件夹 1