news 2026/5/1 10:03:37

鸿蒙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/5/1 9:37:50

LLM与“工夫论”在形而上语境下的相关性

大型语言模型&#xff08;LLM&#xff09;的崛起引发了一个深刻的哲学问题&#xff1a;当系统在不涉及传统意义上的“理解”时&#xff0c;却能稳定产生正确甚至创造性的行为&#xff0c;这是否意味着我们对于智能、意义和存在的理解需要重构&#xff1f;这一问题可以与中国哲学…

作者头像 李华
网站建设 2026/5/1 9:37:39

还在为低代码PHP测试难收口?这3种测试模式让你效率翻倍,上线无忧

第一章&#xff1a;低代码 PHP 组件的测试用例 在现代Web开发中&#xff0c;低代码平台通过可视化界面和模块化组件显著提升了开发效率。然而&#xff0c;组件逻辑的封装性增加了潜在风险&#xff0c;因此为低代码PHP组件编写可靠的测试用例至关重要。有效的测试不仅能验证功能…

作者头像 李华
网站建设 2026/5/1 6:06:29

Beyond Compare 5激活终极指南:从密钥生成到完整激活

Beyond Compare 5激活终极指南&#xff1a;从密钥生成到完整激活 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen 还在为Beyond Compare 5的授权问题烦恼吗&#xff1f;这款文件对比领域的标杆工…

作者头像 李华
网站建设 2026/4/27 15:40:22

从零开始:用particles.js打造炫酷粒子动画效果

从零开始&#xff1a;用particles.js打造炫酷粒子动画效果 【免费下载链接】particles.js A lightweight JavaScript library for creating particles 项目地址: https://gitcode.com/gh_mirrors/pa/particles.js 还在为网页缺少动态元素而烦恼吗&#xff1f;想让你的网…

作者头像 李华
网站建设 2026/5/1 6:08:45

农业大数据分析实战(R语言随机森林模型大揭秘)

第一章&#xff1a;农业大数据与随机森林模型概述在现代农业的发展进程中&#xff0c;数据驱动的决策系统正发挥着日益关键的作用。农业大数据涵盖了气象信息、土壤参数、作物生长周期、病虫害记录以及遥感影像等多源异构数据&#xff0c;为精准农业提供了坚实基础。通过对这些…

作者头像 李华