当使用 Xcode 项目时
当使用 Swift Package Manager 清单时
选择软件包版本
0.1.1
main
Swift 的 Office Open XML (OOXML) 格式(.xlsx、.docx、.pptx)解密
CryptoOffice 是一个用于解密使用 ECMA-376 agile encryption 的 Microsoft Office 格式的库。它应与允许解析解密数据的库结合使用,例如 CoreXLSX。
如有任何问题或想闲聊,请加入我们的 Discord。
使用 CryptoOffice 非常简单
- 在相关的 Swift 源文件顶部添加
import CryptoOffice
。 - 使用
CryptoOfficeFile(path: String)
创建一个新实例,并指定加密文件的路径。 - 调用
decrypt(password: String)
来获取解密后的数据。 - 使用适用于该格式的库解析解密后的数据(在此示例中为 CoreXLSX)。
import CoreXLSX
import CryptoOffice
let encryptedFile = try CryptoOfficeFile(path: "./categories.xlsx")
let decryptedData = try encryptedFile.decrypt(password: "pass")
let xlsx = try XLSXFile(data: decryptedData)
for path in try xlsx.parseWorksheetPaths() {
let worksheet = try xlsx.parseWorksheet(at: path)
for row in worksheet.data?.rows ?? [] {
for c in row.cells {
print(c)
}
}
}
Apple 平台
- Xcode 12.4 或更高版本
- Swift 5.3 或更高版本
- iOS 13.0 / watchOS 6.0 / tvOS 13.0 / macOS 10.15 或更高版本的部署目标
Linux
- Swift 5.3 或更高版本
Swift Package Manager 是一种用于管理 Swift 代码分发的工具。它与 Swift 构建系统集成,可以自动执行在所有平台上下载、编译和链接依赖项的过程。
设置好 Swift 包后,将 CryptoOffice
添加为依赖项就像将其添加到 Package.swift
的 dependencies
值一样简单。
dependencies: [
.package(url: "https://github.com/CoreOffice/CryptoOffice.git",
.upToNextMinor(from: "0.1.1"))
]
如果您在用 Xcode 构建的应用中使用 CryptoOffice,您还可以使用 Xcode 的 GUI 将其添加为直接依赖项。
本项目使用 SwiftFormat 和 SwiftLint 来强制执行格式化和编码风格。我们鼓励您以最适合您的方式在存储库的本地克隆中运行 SwiftFormat,无论是手动还是通过 Xcode 扩展、构建阶段 或 git pre-commit 钩子 等自动运行。
为了保证这些工具在您提交 macOS 上的更改之前运行,我们鼓励您运行此命令一次以设置 pre-commit 钩子
brew bundle # installs SwiftLint, SwiftFormat and pre-commit
pre-commit install # installs pre-commit hook to run checks before you commit
有关其他平台的更多详细信息和安装说明,请参阅pre-commit 文档页面。
SwiftFormat 和 SwiftLint 也会在每次 PR 的 CI 上运行,因此 CI 构建可能会因为不一致的格式或风格而失败。我们要求 CI 构建通过才能合并所有 PR。
本项目遵守 Contributor Covenant 行为准则。参与本项目,即表示您应遵守此准则。请将不可接受的行为报告给 coreoffice@desiatov.com。
CryptoOffice 在 Apache License, Version 2.0(“许可证”)下获得许可;除非符合许可证的规定,否则您不得使用此库。有关更多信息,请参见 LICENSE 文件。
除非适用法律要求或以书面形式同意,否则根据许可证分发的软件按“原样”分发,不提供任何形式的明示或暗示的保证或条件。请参阅许可证,了解有关特定权限和限制的详细信息。
CryptoOffice 使用 swift-crypto, CryptoSwift, XMLCoder, OLEKit 和 ZIPFoundation。 后者只是 CryptoOffice 测试套件的依赖项。 请查看各个项目以获取其真实的许可信息。