鱼C论坛

 找回密码
 立即注册
查看: 82|回复: 3

[已解决]移动端如何用Javescript操作excel

[复制链接]
发表于 2025-4-19 00:19:23 | 显示全部楼层 |阅读模式
60鱼币
最佳答案
2025-4-19 00:19:24
使用FileReader和xlsx库

最佳答案

查看完整内容

使用FileReader和xlsx库
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-19 00:19:24 | 显示全部楼层    本楼为最佳答案   
使用FileReader和xlsx库
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-19 00:20:11 | 显示全部楼层
移动端JavaScript操作Excel常见方案

以下是移动端浏览器环境操作Excel的常用方法:

1. 使用xlsx库(推荐)
安装SheetJS库:
  1. <script src="[url=https://cdn.sheetjs.com/xlsx-0.20.0/package/dist/xlsx.full.min.js"></script>
复制代码
]https://cdn.sheetjs.com/xlsx-0.20.0/package/dist/xlsx.full.min.js"></script>[/code][/url]

读取Excel示例:

  1. document.getElementById('fileInput').addEventListener('change', function(e) {
  2.   const file = e.target.files[0];
  3.   const reader = new FileReader();
  4.   
  5.   reader.onload = function(e) {
  6.     const data = new Uint8Array(e.target.result);
  7.     const workbook = XLSX.read(data, {type: 'array'});
  8.     const sheetName = workbook.SheetNames[0];
  9.     const worksheet = workbook.Sheets[sheetName];
  10.     const jsonData = XLSX.utils.sheet_to_json(worksheet);
  11.     console.log(jsonData);
  12.   };
  13.   reader.readAsArrayBuffer(file);
  14. });
复制代码


导出Excel示例:

  1. function exportExcel() {
  2.   const data = [["姓名","年龄"], ["张三",25], ["李四",30]];
  3.   const ws = XLSX.utils.aoa_to_sheet(data);
  4.   const wb = XLSX.utils.book_new();
  5.   XLSX.utils.book_append_sheet(wb, ws, "Sheet1");
  6.   
  7.   XLSX.writeFile(wb, "output.xlsx");
  8. }
复制代码


2. 移动端注意事项:
  • iOS需要用户主动触发(如点击事件)才能下载文件
  • Android部分浏览器可能需要引导用户手动保存
  • 推荐通过按钮触发操作,不要自动执行
  • 大文件处理建议分页加载避免内存溢出


3. 其他方案:
  • Google Sheets API(需要网络)
  • Web Worker处理大文件(提升性能)
  • 配合后端服务生成文件(减轻前端压力)


注意:移动端浏览器对文件操作存在较多限制,建议优先考虑导出基础数据,复杂操作推荐使用PC端处理。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-4-19 00:23:49 | 显示全部楼层
  1. // 使用File API和xlsx库
  2. async function readExcel(file) {
  3.     return new Promise((resolve, reject) => {
  4.         const reader = new FileReader();
  5.         reader.onload = (e) => {
  6.             try {
  7.                 const data = new Uint8Array(e.target.result);
  8.                 const workbook = XLSX.read(data, {type: 'array'});
  9.                 resolve(workbook);
  10.             } catch (error) {
  11.                 reject(error);
  12.             }
  13.         };
  14.         reader.onerror = (error) => reject(error);
  15.         reader.readAsArrayBuffer(file);
  16.     });
  17. }

  18. // 使用示例
  19. const fileInput = document.createElement('input');
  20. fileInput.type = 'file';
  21. fileInput.accept = '.xlsx, .xls';
  22. fileInput.onchange = async (e) => {
  23.     const file = e.target.files[0];
  24.     const workbook = await readExcel(file);
  25.     console.log(workbook);
  26. };
  27. document.body.appendChild(fileInput);
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-5 20:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表