news 2026/7/25 8:30:12

鸿蒙6开发保存Excel文件

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
鸿蒙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文件

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/25 17:02:25

MIDI编辑器深度体验:浏览器中的专业音乐制作利器

MIDI编辑器深度体验&#xff1a;浏览器中的专业音乐制作利器 【免费下载链接】midieditor Provides an interface to edit, record, and play Midi data 项目地址: https://gitcode.com/gh_mirrors/mi/midieditor 想要在浏览器中体验专业级的音乐制作吗&#xff1f;MIDI…

作者头像 李华
网站建设 2026/7/25 9:41:17

完美解决OBS-NDI插件运行环境缺失问题:从根源到修复

完美解决OBS-NDI插件运行环境缺失问题&#xff1a;从根源到修复 【免费下载链接】obs-ndi NewTek NDI integration for OBS Studio 项目地址: https://gitcode.com/gh_mirrors/ob/obs-ndi 当你在OBS Studio中安装NDI插件后遇到"NDI Runtime Not Found"错误时&…

作者头像 李华
网站建设 2026/7/24 14:34:04

SGP4卫星轨道计算实战指南:从入门到精通

SGP4简化摄动模型是卫星轨道计算领域的经典算法&#xff0c;广泛应用于卫星跟踪、空间碎片监测和航天器任务规划。该项目提供了完整的C实现&#xff0c;包含核心计算库、卫星追踪工具和测试套件&#xff0c;为航天爱好者和专业开发者提供可靠的轨道预测解决方案。 【免费下载链…

作者头像 李华
网站建设 2026/7/24 16:38:52

【纤维协程调度深度解析】:掌握高效任务调度的5大核心机制

第一章&#xff1a;纤维协程的任务调度本质在现代高并发系统设计中&#xff0c;纤维&#xff08;Fiber&#xff09;作为一种轻量级的执行单元&#xff0c;其任务调度机制与传统线程模型有着本质区别。纤维运行于用户态&#xff0c;由运行时系统自主调度&#xff0c;避免了内核态…

作者头像 李华
网站建设 2026/7/24 23:49:47

彻底告别Tiled地图编辑器卡顿:新手必看的性能优化指南

彻底告别Tiled地图编辑器卡顿&#xff1a;新手必看的性能优化指南 【免费下载链接】tiled Flexible level editor 项目地址: https://gitcode.com/gh_mirrors/ti/tiled 你是否在使用Tiled地图编辑器时遇到过这样的困扰&#xff1a;打开大型地图时响应缓慢&#xff0c;操…

作者头像 李华
网站建设 2026/7/25 4:10:03

医疗信息集成痛点解析,PHP如何实现严格的数据格式与合规性校验

第一章&#xff1a;医疗信息集成中的核心挑战在现代医疗信息化进程中&#xff0c;系统间的数据互通成为提升诊疗效率与患者安全的关键。然而&#xff0c;由于医疗机构长期使用异构系统&#xff0c;数据标准不统一&#xff0c;导致信息孤岛现象严重&#xff0c;集成过程面临多重…

作者头像 李华