#spreadsheet #xlsx #excel #web-apps #ooxml #read-write

logisheets

使用 Rust 和 TypeScript 编写的 Web 电子表格应用程序

7 个版本 (破坏性更新)

0.6.0 2024 年 1 月 3 日
0.5.0 2023 年 12 月 29 日
0.4.0 2023 年 9 月 30 日
0.3.0 2022 年 6 月 2 日
0.1.0 2022 年 4 月 18 日

#2 in #ooxml

每月 35 次下载

MIT 许可证

5KB

LogiSheets

MIT/Apache 2.0

什么是 LogiSheets?

LogiSheets 是一个基于网络的电子表格应用程序,可以无缝地与 Excel 集成,并旨在进行扩展。值得注意的是,它是免费的!

您可以使用 Rust crate 和 Node 包来高效地读取、执行操作和写入 .xlsx 文件。

我们还在开发一个用户界面,以便用户可以直接在他们的网络浏览器中使用电子表格。

警告

LogiSheets 目前处于 早期开发阶段。我们欢迎您的反馈、问题或拉取请求!

设计目标

  • 易于进一步开发:LogiSheets 提供丰富的 API,帮助您开发插件。
  • 支持结构化数据:LogiSheets 引入了一种数据结构(暂时命名为 Block),以保持指定区域内单元格的一致位置。
  • 支持协作

开始使用

在 Rust 中使用它

现在,LogiSheets 提供了读取和写入 .xlsx 文件的 API。更多用于操作电子表格的 API(如输入公式并计算或写入文件)正在路上。

加载文件

use logisheets::{Value, Workbook};
use std::fs;
let mut buf = fs::read("tests/6.xlsx").unwrap();
let mut wb = Workbook::from_file(&mut buf, String::from("6")).unwrap();
let mut ws = wb.get_sheet_by_idx(0).unwrap();

然后获取值

let v = ws.get_value(9, 1).unwrap();

或获取公式

let f = ws.get_formula(9, 1).unwrap();

您还可以获取单元格样式

let s = ws.get_style(9, 1).unwrap();

您可以通过以下方式获取工作表的注释

let comments = ws.get_comments();

作为网络应用程序使用

我们正在开发中。您可以通过运行 cmd 检查进度

yarn start:wasm
  • 插入/删除列或行。
  • 计算并支持 200 多个函数。
  • 撤销/重做

限制

  • 插入/删除单元格。

依赖项

~19MB
~372K SLoC