如何通过Google Apps Script将生成的Google Doc保存为XML文件?
可行,直接生成XML文件即可
不需要依赖Google Doc模板绕弯子,直接用表格数据构建XML内容,再保存为XML文件到指定Drive文件夹就行。修改后的代码如下:
function createSpreadsheetChangeTrigger() { var ss = SpreadsheetApp.getActive(); ScriptApp.newTrigger('createNewGoogleDocs') .forSpreadsheet(ss) .onChange() .create(); } function createNewGoogleDocs() { const destinationFolder = DriveApp.getFolderById('1fNTFsBfjifUzdkkEfEN-r6ThrJtcQrQQ'); const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('sheet'); const rows = sheet.getDataRange().getValues(); rows.forEach(function(row, index){ // 跳过表头行(保持你原有的判断逻辑) if (index === 2) return; // 已生成过文件的行直接跳过 if (row[30]) return; // 处理日期格式 const friendlyDate = new Date(row[3]).toLocaleDateString(); // 构建XML内容,可根据业务需求调整标签结构 const xmlContent = `<?xml version="1.0" encoding="UTF-8"?> <TaxDocument> <CityCode>${row[2]}</CityCode> <TaxReturnYear>${friendlyDate}</TaxReturnYear> <NIFOfTaxpayerA>${row[4]}</NIFOfTaxpayerA> <DegreeOfDisability>${row[5]}</DegreeOfDisability> <IfDisabledFromArmedForcesActivity>${row[6]}</IfDisabledFromArmedForcesActivity> </TaxDocument>`; // 创建XML文件,指定文件名与合法MIME类型 const xmlFile = destinationFolder.createFile(`${row[0]}, ${row[1]}.xml`, xmlContent, MimeType.XML); // 获取XML文件的访问链接 const url = xmlFile.getUrl(); // 更新表格对应单元格的链接记录 sheet.getRange(index + 1, 31).setValue(url); }); }
关键修改说明:
- 移除了所有Google Doc相关操作,直接通过字符串拼接生成符合格式的XML内容
- 使用
DriveApp.createFile()直接生成XML文件,第三个参数指定MimeType.XML确保文件类型正确识别 - 可根据实际业务需求自由调整XML的标签结构、嵌套层级或属性,只要保证XML语法合法即可
- 保留了你原有的日期处理逻辑,若需要特定格式可自行修改
toLocaleDateString()的参数
内容的提问来源于stack exchange,提问作者Valeriia Shcherbina
相关产品推荐
相关产品推荐

