技术求助:将谷歌表格发布的CSV链接转UTF-16 TXT并生成下载链接
别担心,我来帮你一步步搞定这个问题!你优先考虑用Google Script,那咱们先从这个方案说起,之后再给你补一个前端JavaScript的备选方案~
方案一:使用Google Apps Script实现
这个方案可以直接在你的Google表格生态里完成转换,还能把生成的文件存到Drive并获取下载链接。
步骤1:创建Google Apps Script项目
- 打开你的目标Google表格,点击顶部菜单栏的「扩展程序」→「Apps Script」,进入脚本编辑器。
- 删除默认的
myFunction()代码,替换成下面的完整脚本。
步骤2:编写转换与生成链接的脚本
function convertCSVtoUTF16TXTAndGetLink() { // 👇把这里替换成你自己的Google表格发布CSV链接 const csvUrl = "你的CSV发布链接"; try { // 1. 从链接获取UTF-8编码的CSV内容 const response = UrlFetchApp.fetch(csvUrl); const csvContent = response.getContentText(); // 2. 将内容转换为UTF-16编码的TXT文件Blob const txtBlob = Utilities.newBlob(csvContent, "text/plain", "转换后的文件.txt") .setCharset("UTF-16"); // 3. 把Blob保存到Google Drive(默认存到根目录,可自行指定文件夹) const savedFile = DriveApp.createFile(txtBlob); // 设置文件为「任何人可通过链接查看」,确保下载链接能正常访问 savedFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); // 4. 获取并输出下载链接 const downloadUrl = savedFile.getDownloadUrl(); console.log("转换完成!下载链接:" + downloadUrl); // 给表格弹出提示,方便快速知道结果 SpreadsheetApp.getActiveSpreadsheet().toast("转换成功!链接已输出到日志", "提示", 5); return downloadUrl; } catch (error) { console.error("转换出错:" + error.message); SpreadsheetApp.getActiveSpreadsheet().toast("转换失败:" + error.message, "错误", 5); return null; } }
步骤3:运行脚本并授权
- 点击脚本编辑器顶部的「运行」按钮,首次运行会触发权限授权,按照页面提示完成授权(需要允许脚本访问你的Drive和表格)。
- 运行完成后,点击「查看」→「日志」就能看到生成的下载链接了。
方案二:前端JavaScript备选方案(无需Google服务)
如果不想用Google Script,也可以用纯前端代码在浏览器里完成转换和下载,不需要后端支持:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>CSV转UTF-16 TXT下载工具</title> </head> <body> <button onclick="convertAndDownload()">点击转换并下载</button> <script> async function convertAndDownload() { // 👇替换成你的CSV发布链接 const csvUrl = "你的CSV发布链接"; try { // 1. 获取CSV内容 const response = await fetch(csvUrl); const csvContent = await response.text(); // 2. 将UTF-8字符串转换为UTF-16编码的二进制数据 const encoder = new TextEncoder("utf-16"); const arrayBuffer = encoder.encode(csvContent); // 3. 创建TXT文件Blob并生成下载链接 const blob = new Blob([arrayBuffer], { type: "text/plain;charset=UTF-16" }); const downloadLink = document.createElement("a"); downloadLink.href = URL.createObjectURL(blob); downloadLink.download = "转换后的文件.txt"; // 触发浏览器下载 downloadLink.click(); URL.revokeObjectURL(downloadLink.href); // 释放浏览器资源 } catch (error) { alert("转换出错啦:" + error.message); } } </script> </body> </html>
使用说明:
- 把这段代码保存成
.html文件,用浏览器打开; - 替换代码里的
csvUrl为你的CSV发布链接; - 点击按钮就能直接在浏览器里完成转换并下载TXT文件。
- 注意:如果你的CSV链接存在跨域限制,这个方案可能无法正常工作,此时Google Script方案会更可靠。
内容的提问来源于stack exchange,提问作者chanyoungs
相关产品推荐
相关产品推荐

