当前位置: 首页 > news >正文

鸿蒙6开发保存Excel文件

概述:

本文采用exceljs,方法来源于鸿蒙的第三方库,教程地址:https://ohpm.openharmony.cn/#/cn/detail/@archermind%2Fexceljs
因Excel读取简单,所以没有描述读取操作。

软硬件平台:

运行测试平台:鸿蒙6.0.0(Mate 70 Pro模拟器),即API20
开发平台Dev Echo:版本6.0.0.858

因鸿蒙设计不同版本API函数不能完全向下兼容,本文仅适用于API20,对于其他版本可能会出错

配置环境:

需要nodejs环境,我找的最新版,地址:https://nodejs.org/dist/v24.11.1/node-v24.11.1-x64.msi
按照默认安装好nodejs,然后配置好环境变量,使node.exe和ohpm.bat能直接在命令行访问到
我按照默认安装的,在Path中添加了下面的两个环境变量:
C:\Program Files\nodejs
C:\Program Files\Huawei\DevEco Studio\tools\ohpm\bin

安装包:

因导入相关包报错:import ExcelJS, { Cell, Column } from ‘@archermind/exceljs’
根据教程,在命令行执行如下命令:
ohpm install @archermind/exceljs

功能代码:

需要打开文件读写权限,此功能这里不描述了。关键地方加了注释,我相信应该很容易看懂

importExcelJS,{Cell,Column}from'@archermind/exceljs'exportdefaultclassExcelOp{publicstaticSaveExcel(strFileName:string,titles:string[],datas:string[][]){constworkbook=newExcelJS.Workbook();constworksheet=workbook.addWorksheet('test');letindexRow:number=0;letindexColumn:number=0;letcell:Cell;/* 标题风格 */conststyleHead:Partial<ExcelJS.Style>={border:{top:{style:'thin',color:{argb:'FFD3D3D3'}},left:{style:'thin',color:{argb:'FFD3D3D3'}},bottom:{style:'thin',color:{argb:'FFD3D3D3'}},right:{style:'thin',color:{argb:'FFD3D3D3'}}},fill:{type:'pattern',pattern:'solid',fgColor:{argb:'FFAEEEEE'}},font:{name:'楷体',family:2,size:12,bold:true,italic:true,color:{argb:'FF2F4F4F'}},alignment:{vertical:'middle',horizontal:'left'},};/* 奇数列风格 */conststyleOddColumn:Partial<ExcelJS.Style>={fill:{type:'pattern',pattern:'solid',fgColor:{argb:'FFADFF2F'}},};/* 偶数列风格 */conststyleEvenColumn:Partial<ExcelJS.Style>={fill:{type:'pattern',pattern:'solid',fgColor:{argb:'FFADD8E6'}},};/* 设置列宽度,运行没问题,暂时屏蔽 worksheet.columns = [ { width: 16 }, { width: 16 }, { width: 16 }, ];*/indexRow=0;/* 设置标题文本和风格 */for(indexColumn=0;indexColumn<titles.length;indexColumn++){cell=worksheet.getCell(String.fromCharCode(65+indexColumn)+(indexRow+1).toString());cell.value=titles[indexColumn];cell.style=styleHead;}/* 设置类容文本和风格 */for(indexRow=0;indexRow<datas.length;indexRow++){for(indexColumn=0;indexColumn<datas[indexRow].length;indexColumn++){cell=worksheet.getCell(String.fromCharCode(65+indexColumn)+(indexRow+2).toString());cell.style=((indexColumn%2)==0)?styleOddColumn:styleEvenColumn;cell.value=datas[indexRow][indexColumn];}}/* 写入到Excel文件 */workbook.xlsx.writeFile(strFileName);}}

测试代码:

ExcelOp.SaveExcel('/storage/Users/currentUser/Documents/test.xlsx',['t1','t2','t3'],[['10','11','12'],['20','21','22'],['30','31','32']]);

测试结果:

生成了excel文件

http://www.cnnetsun.cn/news/74051.html

相关文章:

  • 微信视频号直播弹幕抓取终极指南:实时获取互动数据的完整方案
  • Source Han Serif 思源宋体:开源专业字体全方位应用指南
  • 医疗数据交换新标准来了,PHP如何快速支持FHIR格式导出?
  • 移动端PDF预览困境:如何用pdfh5.js打造丝滑体验
  • 5分钟搞定Windows虚拟显示器:零基础也能轻松上手
  • (Rust赋能PHP):构建高效内存管理系统的4种方法
  • 【R语言聚类算法进阶指南】:解锁空间转录组数据的隐藏细胞类型
  • 如何用AI图像分层工具3倍提升设计效率?终极指南
  • 【PHP高手进阶必备】:深入解读PHP 8.6废弃函数与替代方案(附检测脚本)
  • PyART完全指南:5步掌握气象雷达数据处理核心技能
  • 3分钟掌握在线UML绘图:PlantUML Editor完全使用指南
  • 5分钟快速上手Unitree Go2机器人:ROS2集成终极指南
  • 开源项目维护的3大挑战与5个实用解决方案
  • 夸克网盘自动化配置终极指南:三步搞定懒人追剧神器
  • QQ音乐数据获取技术揭秘:Python工具深度剖析与实战应用
  • Display Driver Uninstaller完整教程:快速解决显卡驱动问题的终极方案
  • 从零构建农业物联网网关,PHP开发者必须掌握的3种主流协议对比
  • OpenCore Legacy Patcher深度解析:老Mac跨代升级的完整技术方案
  • 揭秘空间转录组数据分析:5大R语言聚类算法核心原理与应用
  • 为什么你的田间试验数据总不显著?R语言方差分析常见误区全避坑
  • 农业物联网数据传输稳定性提升指南(PHP网关协议优化全攻略)
  • [收藏必看] 从0到1实战:用LlamaIndex微调Embedding模型,RAG系统检索准确率提升14.6%!
  • 实习面试题-Nginx 配置面试题
  • 大模型Agent面试精选15题(第三辑)LangChain框架与Agent开发的高频面试题
  • OpenCore Legacy Patcher强力解决方案:突破macOS硬件限制的专业指南
  • (新卷,200分)- 评论转换输出(Java JS Python)
  • FLUX.1-dev图文理解能力深度测评:视觉问答与指令微调表现分析
  • 内点法求最优潮流(Matlab代码实现)
  • 如何快速释放Windows磁盘空间:终极存储分析工具完整指南
  • ComfyUI与Redis缓存集成:加速大规模生成任务