如何将Google日历事件导出到Google Sheets并去除文本格式?
将Google日历事件导出到Google Sheets并去除格式的实现方法
核心思路
Google日历的事件描述、标题这类字段大多是带HTML标签的富文本,要导出纯文本,核心就是把这些HTML标签清掉,再整理下多余的换行和空格。下面直接给修改后的代码和关键说明。
修改后的完整代码
function exportCalendarEvents() { var startDate = new Date('2022-01-01'); var endDate = new Date('2022-02-01'); var calendar = CalendarApp.getDefaultCalendar(); var events = calendar.getEvents(startDate, endDate); var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.clear(); sheet.appendRow(['标题', '开始时间', '结束时间', '描述']); for (var i = 0; i < events.length; i++) { var event = events[i]; // 清理标题和描述的格式,转成纯文本 var plainTitle = removeFormatting(event.getTitle()); var plainDescription = removeFormatting(event.getDescription()); sheet.appendRow([ plainTitle, event.getStartTime(), event.getEndTime(), plainDescription ]); } } // 清理富文本格式的工具函数 function removeFormatting(htmlText) { if (!htmlText) return ''; // 空内容直接返回空字符串 // 先删掉所有HTML标签 var plainText = htmlText.replace(/<[^>]*>/g, ''); // 再整理多余的换行和空格 plainText = plainText.replace(/\n\s*\n/g, '\n'); // 去掉连续空行 plainText = plainText.replace(/\s+/g, ' ').trim(); // 多个空格合并成一个,清掉首尾空格 return plainText; }
关键细节说明
removeFormatting是核心:用正则表达式<[^>]*>匹配所有HTML标签并移除,然后处理多余的空白字符,保证导出的文本干净整洁。- 标题也可能带格式(比如加粗的HTML标签),所以一起处理更稳妥。
- 空内容直接返回空字符串,避免表格里出现奇怪的占位符。
操作步骤
- 打开要导出的Google Sheets,点「扩展程序」→「Apps Script」。
- 把原代码全删掉,替换成上面的代码。
- 保存项目(随便起个名字,比如CalendarExport)。
- 运行
exportCalendarEvents函数,第一次运行会弹出权限请求,按提示授权就行。 - 回到表格,就能看到纯文本格式的日历事件了。
内容的提问来源于stack exchange,提问作者ש111
相关产品推荐
相关产品推荐

