OmniPlan 无法通过导入 csv
的方式添加子任务
今天遇到一个问题,我可以利用 Excel
导出 csv
,并将 csv
用 OmniPlan
打开,实现任务的批量导入,但是居然没有找到很好的批量添加子任务的方法。
在我的测试中, csv
中只能添加行和/或列,由于我也不太了解 csv
的规则,没有找到解决方法。
根据官方文档,可以从所选 JSON 数据文件 (下载) 导入的团队创建资源组,但是数据添加并不方便。
Omni Automation 来实现批量添加多个子任务
实在没有办法,只能研究一下Omni Automation
,希望通过自动化来解决这一问题。
这里直接给出 Omni
的相关代码,实现的功能是:对选中的task(一级任务),批量添加三项子任务(Subtask)
。
/*{
"type": "action",
"targets": ["omniplan"],
"author": "QXPAI",
"identifier": "com.qxpai.cn.test",
"version": "1.0",
"description": "qxpai.cn",
"label": "qxpai.cn",
"shortLabel": "add_subtask"
}*/
(() => {
var action = new PlugIn.Action(function(selection, sender){
// 获取当前选中的任务
selectedTasks = document.windows[0].selection.tasks;
selectedTasks.forEach(task => {
// 检查任务是否为一级任务(顶层任务)
if (task.parent === document.taskRoot) {
// 为一级任务添加名为 'test' 的子任务
let subtask1 = task.addSubtask();
subtask1.title = 'test1'; // 设置子任务1的标题
let subtask2 = task.addSubtask();
subtask2.title = 'test2'; // 设置子任务2的标题
let subtask3 = task.addSubtask();
subtask3.title = 'test3'; // 设置子任务3的标题
}
});
taskTitles = selectedTasks.map(task => task.title)
console.log(taskTitles.join('\n'))
});
return action;
})();
当然,在上述代码的基础上,也可以实现在刚添加的子任务中添加子子任务
的功能,只需要将task.addSubtask()
修改为类似task3.addSubtask()
即可。
想要直接下载插件的,见下方说明。
下载关键词
可以关注页面底部公众号,回复「批量添加子任务」,即可得到插件的下载链接!
更多宏示例和教程都在「效率成瘾的浅学派」!
全平台同名:「效率成瘾的浅学派」
欢迎关注我的网站: www.qxpai.cn
Keyboard Maestro中文手册参见:km.qxpai.cn
有问题请反馈至 wuzimuws@gmail.com