news 2026/9/20 20:02:48

鸿蒙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/9/19 0:20:15

微信视频号直播弹幕抓取终极指南:实时获取互动数据的完整方案

微信视频号直播弹幕抓取终极指南&#xff1a;实时获取互动数据的完整方案 【免费下载链接】wxlivespy 微信视频号直播间弹幕信息抓取工具 项目地址: https://gitcode.com/gh_mirrors/wx/wxlivespy 在直播带货和内容创作日益火热的今天&#xff0c;掌握直播间实时互动数据…

作者头像 李华
网站建设 2026/9/19 21:01:05

Source Han Serif 思源宋体:开源专业字体全方位应用指南

Source Han Serif 思源宋体&#xff1a;开源专业字体全方位应用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为商业项目中的字体版权问题而焦虑吗&#xff1f;Source Han S…

作者头像 李华
网站建设 2026/9/20 19:56:41

医疗数据交换新标准来了,PHP如何快速支持FHIR格式导出?

第一章&#xff1a;医疗数据交换新标准FHIR概述FHIR&#xff08;Fast Healthcare Interoperability Resources&#xff09;是由HL7组织推出的一套现代化医疗数据交换标准&#xff0c;旨在解决传统医疗系统间数据孤岛问题。它基于RESTful API设计原则&#xff0c;使用JSON或XML格…

作者头像 李华
网站建设 2026/9/20 8:41:48

移动端PDF预览困境:如何用pdfh5.js打造丝滑体验

还在为移动端PDF预览的各种坑而头疼吗&#xff1f;页面卡顿、缩放不灵敏、兼容性问题...这些痛点是不是让你夜不能寐&#xff1f;今天&#xff0c;我们来聊聊如何用pdfh5.js这个"神器"彻底解决这些问题。 【免费下载链接】pdfh5 项目地址: https://gitcode.com/gh…

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

5分钟搞定Windows虚拟显示器:零基础也能轻松上手

5分钟搞定Windows虚拟显示器&#xff1a;零基础也能轻松上手 【免费下载链接】virtual-display-rs A Windows virtual display driver to add multiple virtual monitors to your PC! For Win10. Works with VR, obs, streaming software, etc 项目地址: https://gitcode.com…

作者头像 李华
网站建设 2026/9/19 23:48:32

(Rust赋能PHP):构建高效内存管理系统的4种方法

第一章&#xff1a;Rust赋能PHP的内存管理概述在现代Web开发中&#xff0c;PHP因其易用性和广泛的生态被广泛采用&#xff0c;但其底层基于Zend引擎的内存管理机制存在运行效率低、内存泄漏风险高等问题。通过引入Rust语言的强大能力&#xff0c;开发者可以构建安全、高效的扩展…

作者头像 李华