广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用SheetJS读写Excel文件
  • 469
分享到

使用SheetJS读写Excel文件

excelpython开发语言sheetjs表格 2023-09-03 22:09:49 469人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

文章目录 目的基础说明读取写入总结 目的 项目中有一个excel转JSON的工具,之前这个工具一直使用 python 的 openpyxl 库来编写的,然后使用 pyinstaller 打

文章目录

目的

项目中有一个excelJSON工具,之前这个工具一直使用 pythonopenpyxl 库来编写的,然后使用 pyinstaller 打包成 .exe 文件。之前这个工具只是个命令行工具,不带界面的。现在项目升级,打算使用web前端方式重写这个工具,调整部分功能并新增图形界面。这篇文章中将使用 Sheetjs 来操作Excel文件,对相关操作进行简单记录。
在这里插入图片描述

基础说明

前端操作Excel文件比较常用的库有 SheetJSExcelJS

先说说 ExcelJS

项目地址:https://github.com/exceljs/exceljs

这个库是完全开源的,所有功能都开放使用,这是它相比 SheetJS 的优势。不过最后我没有使用这个库的原因有二:

  • 取单元格使用 ws.getCell('A1') 方式,和 openpyxl 使用 ws['A1'] 方式取单元格相比稍显复杂;
  • 没从文档中找到获取所有合并的单元格信息的方法(虽然最后查看源码可以用 ws._merges 方式来获取合并单元格信息);

再说说 SheetJS

官方页面:https://sheetjs.com/
项目地址:https://github.com/SheetJS/sheetjs

这个库最大的问题就是分为社区版(CE)和专业版(Pro),专业版才是完整功能的版本,支持完整的样式设置、图表、图像处理等功能。当然只是一般的数据读写等操作的话社区版也够用了。

这个库可以使用 ws['A1'] 方式取单元格,操作上人性化些。

SheetJS 可以直接在前端页面中使用,也可以以构建方式使用或是后端使用,这里以接在前端页面中使用进行说明。

<script lang="javascript" src="https://cdn.sheetjs.com/xlsx-0.19.1/package/dist/xlsx.full.min.js">script><script lang="javascript" src="Https://cdn.sheetjs.com/xlsx-latest/package/dist/xlsx.full.min.js">script>

读取

读取Excel文件操作比较简单,从原始数据中获取工作簿,从工作簿中获取工作表,从工作表中获取单元格数据,基本上就是这个流程了。下面是示例代码:

DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <script src="https://cdn.sheetjs.com/xlsx-0.19.1/package/dist/xlsx.full.min.js">script>    <script>        // 从文件数据中解析出excel内容        function parse(data) {            const workbook = XLSX.read(data); // 从原始数据获取工作簿                  // 后端使用可以使用 readFile() 方法直接读取文件            var first_sheet_name = workbook.SheetNames[0]; // 获得第一个工作表名称            const worksheet = workbook.Sheets[first_sheet_name]; // 获取工作表            console.log(worksheet['A1']); // 读取并打印A1端元格数据            console.log(worksheet['!merges']); // 打印所有合并单元格信息数组                        console.log(worksheet['!ref']); // 打印输出当前工作表使用的范围        }        // 读取文件数据        function read(file) {            let reader = new FileReader();            reader.onload = function (e) {                parse(e.target.result);            };            reader.readAsArrayBuffer(file);        }    script>head><body>    <input type="file" onchange="read(this.files[0])" /><br>body>html>

下面是单元格数据获取演示:
获取单元格数据时,如果有内容会返回一个对象,对象中 t 表示数据类型( s 表示字符串n 表示数值……), v 为原始数据, w 为格式化后的文本……。更多内容可以参考下面链接:
https://docs.sheetjs.com/docs/csf/cell/
如果单元格为空则返回 undefined 。对于合并单元格而言其内容位于左上角的格子。
在这里插入图片描述

下面是获取合并单元格信息的演示:
下图中 s 表合并单元格的左上格子,e 表示右下格子; c 表示列序号(从0开始), r 表示行序号(从0开始)。
在这里插入图片描述

事实上 A1 C3 这种表达是Excel中对于单元格的描述,在SheetJS中使用的是 {r:x, c:x} 的方式,两者之间可以通过下面方式转换:

let jsaddr = XLSX.utils.decode_cell("A2"); // 得到{r:1, c:0}let rawaddr = XLSX.utils.encode_cell({r:1, c:0}); // 得到A2let jsaddrr = XLSX.utils.decode_range("A1:D3"); // 得到{ s: { c: 0, r: 0 }, e: { c: 3, r: 2 } }let rawaddrr = XLSX.utils.encode_range({ s: { c: 0, r: 0 }, e: { c: 3, r: 2 } }); // 得到A1:D3

写入

写入操作主要也是处理工作簿、工作表、单元格子等内容,常用的一些操作如下:

let workbook = XLSX.utils.book_new(); // 新建工作簿let workbook = XLSX.utils.table_to_book(table); // 从dom的table元素新建工作簿// 也可以直接操作现有的工作簿let worksheet = XLSX.utils.aoa_to_sheet(data); // 从二维数组新建工作表let worksheet = XLSX.utils.json_to_sheet(data); // 从json数据新建工作表let worksheet = XLSX.utils.table_to_sheet(table); // 从dom的table元素新建工作表XLSX.utils.book_append_sheet(workbook, worksheet, "sheet1"); // 将工作表添加到工作簿XLSX.utils.sheet_add_aoa(worksheet, data, { origin: "A1" }); // 将二维数组添加到工作表XLSX.utils.sheet_add_json(worksheet, data, { origin: "A1" }); // 将json数据添加到工作表XLSX.utils.sheet_add_dom(worksheet, table, { origin: "A1" }); // 将dom的table元素添加到工作表// 合并单元格就是设置其合并的信息if(!worksheet["!merges"]) worksheet["!merges"] = [];worksheet["!merges"].push(XLSX.utils.decode_range("B3:D4"));let html = XLSX.utils.sheet_to_html(worksheet); // 将工作表内容转成htmllet json= XLSX.utils.sheet_to_json(worksheet); // 将工作表内容转成jsonlet csv = XLSX.utils.sheet_to_csv(worksheet); // 将工作表内容转成csv格式文本let txt = XLSX.utils.sheet_to_txt(worksheet); // 将工作表内容转成UTF16文本let data = XLSX.write(workbook, opts); // 生成文档数据XLSX.writeFile(workbook, filename, opts); // 生成文档文件,浏览器环境中将直接下载XLSX.writeFileAsync(filename, workbook, opts, cb); // 生成文档文件,浏览器环境中将直接下载XLSX.writeFileXLSX(workbook, filename, opts); // 生成.xlsx格式文件,浏览器环境中将直接下载

下面是个简单的写入操作示例代码:

DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <script src="https://cdn.sheetjs.com/xlsx-0.19.1/package/dist/xlsx.full.min.js">script>    <script>        function download() {            const workbook = XLSX.utils.book_new(); // 新建工作簿            const worksheet = XLSX.utils.aoa_to_sheet([[22, 333]]); // 从二维数组新建工作表            XLSX.utils.sheet_add_aoa(worksheet, [["Naisu"]], { origin: 'C2' }); // 向单元格写数据            XLSX.utils.sheet_add_aoa(worksheet, [[233]], { origin: 'A3' }); // 向单元格写数据                        worksheet["!merges"] = [XLSX.utils.decode_range("B3:D4")]; // 合并单元格            XLSX.utils.book_append_sheet(workbook, worksheet, "sheet1"); // 将工作表添加到工作簿            XLSX.writeFileXLSX(workbook, 'myfile.xlsx'); // 将工作簿数据建立为./xlsx文件(浏览器环境下会直接下载)        }    script>head><body>    <button onclick="download()">下载button>body>html>

在这里插入图片描述

总结

SheetJS 的基础使用是比较简单的,更多内容可以参考官方文档。另外也有中文文档可供参考:
https://github.com/rockboom/SheetJS-docs-zh-CN

来源地址:https://blog.csdn.net/Naisu_kun/article/details/128483299

--结束END--

本文标题: 使用SheetJS读写Excel文件

本文链接: https://www.lsjlt.com/news/392863.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用SheetJS读写Excel文件
    文章目录 目的基础说明读取写入总结 目的 项目中有一个Excel转JSON的工具,之前这个工具一直使用 Python 的 openpyxl 库来编写的,然后使用 pyinstaller 打...
    99+
    2023-09-03
    excel python 开发语言 sheetjs 表格
  • Python使用openpyxl读写excel文件
    需求:读入sample.xlsx中的信息,通过分析其中的身份证号信息,得到每个人的出生日期,性别,年龄,所在省份,星座,属相等等,将结果写入到另一个excel文件中。 首先,要使用openpyxl第三方库需要安装,安装方法如下: pip i...
    99+
    2023-09-11
    python
  • python读写excel文件
    项目中需要生成excel表格,在网上查了一些资料后,整理记录下。 1. 读excel表格 1 ''' 2 读取XLS,XLSX文件 3 ''' 4 def readExcelFile(filename): 5 # 打开...
    99+
    2023-01-30
    文件 python excel
  • php读写excel文件
    1.引入包 有不少提供读写excel文件的包,这里选择比较常用的一个,加到自己的项目里就好了。 "phpoffice/phpspreadsheet": "1.8.2", 2.读取文件 ...
    99+
    2023-08-31
    excel php读写excel php excel php xls php xlsx
  • 如何使用node读写Excel文件
    这篇文章给大家介绍如何使用node读写Excel文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。具体如下:1、安装node-xlsx模块每次npm的时候,走国外的镜像,非常的慢,甚至...
    99+
    2022-10-19
  • C#使用NPOI库读写Excel文件
    本文实例为大家分享了C#使用NPOI库读写Excel文件的具体代码,供大家参考,具体内容如下 第一步添加程引用: 右键项目工程 — 管理 NuGet程序包 —...
    99+
    2022-11-13
  • 如何使用Node读写txt和Excel文件
    今天小编给大家分享一下如何使用Node读写txt和Excel文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。首先给出文件的...
    99+
    2023-07-04
  • Python读写EXCEL文件常用方法
    python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。 用xlrd和xlwt进行excel读写;用openpyxl进行excel读写;用pandas进行excel读写; 一、数据准备 为了方...
    99+
    2023-09-16
    python excel 数据分析
  • C#中怎么使用NPOI库读写Excel文件
    今天小编给大家分享一下C#中怎么使用NPOI库读写Excel文件的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。第一步添加程引...
    99+
    2023-06-29
  • python使用pandas读写excel文件的方法实例
    目录引言读取excel文件写入文件:总结引言 现在本地创建一个excel表,以及两个sheet,具体数据如下: sheet1:  sheet2: 读取excel文件 p...
    99+
    2022-11-11
  • Python读写EXCEL文件常用方法大全
    python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别,这里我主要介绍几个常用的方式。 用xlrd和xlwt进行excel读写;用openpyxl进行excel读写;用pandas进行excel读写; 一、数据准备 为了方...
    99+
    2023-09-01
    python pandas 数据分析
  • Python读写EXCEL文件常用方法有哪些
    本篇文章给大家分享的是有关Python读写EXCEL文件常用方法有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python读写excel...
    99+
    2022-10-19
  • 如何使用ADO.NET Excel读取文件
    小编给大家分享一下如何使用ADO.NET Excel读取文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在关系数据库提供的各种对象中(表、视图、存储过程等),E...
    99+
    2023-06-17
  • 一文带你搞懂Go如何读写Excel文件
    目录1.下载依赖库2.具体操作2.1 生成一个新的Excel文件2.2 向Excel文件中追加内容2.3 解析Excel文件内容2.4 使用Http协议上传并解析Excel文件2.5...
    99+
    2022-11-13
    Go读写Excel文件 Go读写Excel Go Excel
  • 使用Python读写csv文件
    简介:CSV (Comma Separated Values) 格式是电子表格和数据库中最常见的输入、输出文件格式。又称逗号分隔值(Comma-Separated Values,CS...
    99+
    2022-11-13
  • Python使用xlrd和xlwt批量读写excel文件的示例代码
    目录一、使用xlrd对excel进行数据读取二、使用xlwt写入excel一、使用xlrd对excel进行数据读取 excel表格示例: 安装xlrd库 pip install x...
    99+
    2022-11-13
  • python-yml文件读写与xml文件读写
    目录一、python-yml文件读写更新yml的数值二、python-xml文件读写寻找 XML 节点修改 XML 数据建立 XML 结构XPath 搜索XML 排版一、python...
    99+
    2022-11-11
  • python操作Excel读写--使用x
      一、安装xlrd模块    到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。 二、使用介绍   1、导入模块       import xlrd  ...
    99+
    2023-01-31
    操作 python Excel
  • 怎么用C#读取Excel文件
    这篇文章主要讲解了“怎么用C#读取Excel文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C#读取Excel文件”吧!C#读取Excel文件方法一:直接读取(这种直接读取单元格的方...
    99+
    2023-06-18
  • 文件读写
      读写文件是最常见的IO操作 Python内置了读写文件的函数,用法和C是兼容的 现代操作系统不允许普通的程序直接操作磁盘,即在磁盘上读写文件的功能都是由操作系统提供的 因此,读写文件就是请求操作系统打开一个文件对象(通常称为文件描述...
    99+
    2023-01-31
    文件
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作