前端excle表格插件xlsx(3) - API专区

本文介绍如何使用JavaScript操作Excel表格,包括创建新的工作簿、利用二维数组或JSON对象创建工作表、将工作表添加到工作簿中、修改表格数据等基本操作,并提供了单元格格式转换的方法。

创建表格

创建一个新的工作簿

注:在excle中,工作薄相当于一个笔记本,而工作表相关于笔记本中的一篇笔记

var workbook = XLSX.utils.book_new();

创建一个空的工作簿

用二维数组创建一个工作表

注:aoa是 array of arrays 的缩写

var worksheet = XLSX.utils.aoa_to_sheet(aoa, opts);
// 案例
var worksheet = XLSX.utils.aoa_to_sheet([
  ["A1", "B1", "C1"],
  ["A2", "B2", "C2"],
  ["A3", "B3", "C3"]
]);

上述代码效果
效果图

aoa_to_sheet高级用法
  1. 添加表头行
var worksheet= XLSX.utils.aoa_to_sheet([
  "一二三四五六七".split(""),
  [1,2,3,4,5,6,7],
  [2,3,4,5,6,7,8]
]);

在这里插入图片描述

JSON对象创建一个工作表

var worksheet = XLSX.utils.json_to_sheet(jsa, opts);
// 案例
      var jsonArr = [
        { name: "黄飞鸿", sex: "男", age: "25" },
        { name: "十三姨", sex: "女", age: "30" },
      ];
      var worksheet = XLSX.utils.json_to_sheet(jsonArr);		

在这里插入图片描述

使用HTML表格数据来创建工作表

var worksheet = XLSX.utils.table_to_sheet(dom_element, opts);

把工作表添加到工作薄中

XLSX.utils.book_append_sheet(workbook, worksheet, sheet_name);
// 注: sheet_name 是指定工作表的名称

修改表格中的数据

修改表格中单个单元格的数据

XLSX.utils.sheet_add_aoa(worksheet, [[new_value]], { origin: address });

修改表格中多个单元格的数据

XLSX.utils.sheet_add_aoa(worksheet, aoa, opts);

读excle文件

生成JSON对象

var jsa = XLSX.utils.sheet_to_json(worksheet, opts);
// 案例
var worksheet = workbook.Sheets[workbook.SheetNames[0]]
var jsa = XLSX.utils.sheet_to_json(worksheet);
 console.log(JSON.stringify(jsa));
// [{"Name":"George Washington","Birthday":"1732-02-22"},{"Name":"John Adams","Birthday":"1735-10-19"}]

生成二维数组

var aoa = XLSX.utils.sheet_to_json(worksheet, {...opts, header: 1});
// 案例
var worksheet = workbook.Sheets[workbook.SheetNames[0]]
var jsa = XLSX.utils.sheet_to_json(worksheet,{ header: 1});
 console.log(JSON.stringify(jsa));
// [{"Name":"George Washington","Birthday":"1732-02-22"},{"Name":"John Adams","Birthday":"1735-10-19"}]

生成HTML页面

var html = XLSX.utils.sheet_to_html(worksheet);
// 案例
var worksheet = workbook.Sheets[workbook.SheetNames[0]];
var html = XLSX.utils.sheet_to_html(worksheet);
container.innerHTML = XLSX.utils.sheet_to_html(worksheet);

在这里插入图片描述

单元格格式转换

在xlsx中,行和列都是从0开始的,比如2列5行,在xlsx中就可以表示为 {c:1,r4} 其中,c:列,r:行。
单个单元格表示:B5 ====> {c:1,r:4}
区域单元格表示:A3:B7 ====> {s:{c:0, r:2}, e:{c:1, r:6}} 其中s:表示开始start,e表示结束end

	// 单个单元格
    var cell_ref = XLSX.utils.encode_cell({c:1, r:4});
    console.log(cell_ref); // B5
    var cell_value = XLSX.utils.decode_cell('B5')
    console.log(cell_value); // {c:1, r:4}
    // 区域单元格
    var cell_region_ref = XLSX.utils.encode_range({
      s: { c: 0, r: 2 },
      e: { c: 1, r: 6 },
    });
    console.log(cell_region_ref); //A3:B7
    var cell_region_value = XLSX.utils.decode_range("A3:B7");
    console.log(cell_region_value); //{s: { c: 0, r: 2 },e: { c: 1, r: 6 }}

工作表对象属性

!ref : 单元格范围
!margins : 工作表的页边距
在Java中使用POI创建xlsx格式Excel表格,若使用Apache POI,首先要导入依赖,如下所示: ```xml <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.9</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> </dependencies> ``` 导入依赖后,可通过以下代码创建xlsx格式文件对象并创建工作表: ```java import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.ss.util.WorkbookUtil; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileOutputStream; import java.io.IOException; public class CreateXlsxExample { public static void main(String[] args) { try { // 创建.xlsx格式文件对象 Workbook workbook = new XSSFWorkbook(); // 创建工作表的名字 XSSFSheet sheet = (XSSFSheet) workbook.createSheet(WorkbookUtil.createSafeSheetName("Sheet1")); // 这里可以继续添加行、单元格等操作 // 将工作簿写入文件 try (FileOutputStream fileOut = new FileOutputStream("workbook.xlsx")) { workbook.write(fileOut); } // 关闭工作簿 workbook.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 如果使用非Apache软件基金会的poi包,创建.xlsx格式文件对象方法如下: ```java import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.FileInputStream; import java.io.IOException; public class CreateXlsxWithCustomPoi { public static void main(String[] args) { try { // 假设这里有一个输入流 FileInputStream inputStream = new FileInputStream("example.xlsx"); // 创建.xlsx格式文件对象 XSSFWorkbook workbook = new XSSFWorkbook(inputStream); // 后续可以进行其他操作 workbook.close(); inputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 上述代码参考了使用POI实现Excel表格读写的依赖导入方法以及创建文件对象和工作表的相关内容[^2][^3]。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值