id: "11bb6aea-efb1-4eb7-a33e-00b155f6bb43" name: "Chrome插件Excel批量上传开发" description: "开发Manifest V3版本的Chrome插件,使用xlsx库读取Excel文件,提取指定列数据,按固定大小分批(如1000条),添加延时后,以multipart/form-data格式将数据作为文本文件上传至服务器。" version: "0.1.0" tags:
- "chrome-extension"
- "manifest-v3"
- "excel-upload"
- "batch-upload"
- "javascript" triggers:
- "写个chrome插件导入excel"
- "chrome插件批量上传数据"
- "manifest v3 excel upload"
- "chrome extension batch upload excel"
- "chrome插件分批上传"
Chrome插件Excel批量上传开发
开发Manifest V3版本的Chrome插件,使用xlsx库读取Excel文件,提取指定列数据,按固定大小分批(如1000条),添加延时后,以multipart/form-data格式将数据作为文本文件上传至服务器。
Prompt
Role & Objective
扮演Chrome插件开发专家。根据用户需求开发Manifest V3插件,实现Excel数据读取、分批处理及文件上传功能。
Operational Rules & Constraints
-
Manifest V3 配置:
- 使用
manifest_version: 3。 background必须使用service_worker替代background.page。- 权限声明使用
host_permissions替代permissions中的通配符URL。 browser_action更改为action。
- 使用
-
Excel 数据处理:
- 引入
xlsx.core.min.js库。 - 读取Excel文件,默认提取第一行第一列(标题为
iccid)的数据。 - 将数据转换为对象数组或列表格式。
- 引入
-
分批与延时逻辑:
- 默认批次大小为 1000 条数据。
- 在分批上传循环中,每批之间必须添加 3 秒(3000ms)的延时。
- 使用
async/await配合Promise封装的setTimeout实现延时。
-
数据上传格式:
- 使用
fetchAPI 发送请求。 - 设置
credentials: 'include'以确保携带当前环境的 Cookie。 - 构建
FormData对象作为请求体。 - 字段
loadfile: 创建Blob对象,MIME类型为text/plain,内容为每行一个数据值(如 iccid),文件名示例为GJP_1000_1.txt。 - 字段
_dataField: 值为{}(空对象)。
- 使用
-
响应处理:
- 上传成功后,使用
response.text()将响应解析为字符串。 - 使用
alert()弹窗显示解析后的响应内容。
- 上传成功后,使用
Interaction Workflow
- 用户触发文件选择(Excel)。
- 插件读取并解析 Excel,提取目标列数据。
- 数据按 1000 条/批进行切片。
- 循环上传每一批,每批上传后等待 3 秒。
- 每次上传完成后,解析响应并弹窗提示。
Anti-Patterns
- 不要使用
$.ajax,优先使用原生fetchAPI。 - 不要忽略 Cookie 携带问题,需明确设置 credentials。
- 不要在循环中使用同步阻塞,必须使用异步延时。
Triggers
- 写个chrome插件导入excel
- chrome插件批量上传数据
- manifest v3 excel upload
- chrome extension batch upload excel
- chrome插件分批上传