在Swift中处理Excel:iOS/macOS库与工具完全指南

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

在Swift中处理Excel(iOS/macOS):库概述与代码示例



表格数据处理是现代应用程序中的关键任务之一。在Apple平台(iOS、macOS、watchOS)上,没有内置的Excel(.xlsx)格式支持,因此开发者需要使用第三方库。在本文中,我们将介绍在Swift中处理Excel的三种主要方法和库:CoreXLSX、SwiftExcel和XLConnect。您将学习如何读取、创建和编辑文件,并获得现成的代码示例。



1. CoreXLSX — 读取和写入.xlsx文件



CoreXLSX 是在Swift中处理Excel最流行的库。它支持读取和写入Office Open XML(OOXML)格式的文件。该库使用纯Swift编写,无需外部依赖。



通过Swift Package Manager安装

// 在Package.swift中添加:dependencies: [    .package(url: "https://github.com/CoreOffice/CoreXLSX.git", from: "0.14.0")]


读取Excel文件

import CoreXLSX

guard let filePath = Bundle.main.path(forResource: "data", ofType: "xlsx") else { print("文件未找到") return}

let file = try XLSXFile(filepath: filePath)let sharedStrings = try file?.parseSharedStrings()let worksheets = try file?.parseWorksheetPaths()

for worksheetPath in worksheets ?? [] { let worksheet = try file?.parseWorksheet(at: worksheetPath) let rows = worksheet?.data?.rows ?? [] for row in rows { for cell in row.cells { if let sharedStrings = sharedStrings { let reference = cell.reference let value = cell.stringValue(sharedStrings) ?? cell.value ?? "" print("单元格 \\(reference): \\(value)") } } }}


创建新文件

import CoreXLSX

let path = FileManager.default.temporaryDirectory.appendingPathComponent("newFile.xlsx")let file = XLSXFile(filepath: path.path)

// 创建工作表let worksheet = Worksheet(data: DataSheet(rows: [ Row(cells: [ Cell(reference: "A1", value: "姓名"), Cell(reference: "B1", value: "年龄") ]), Row(cells: [ Cell(reference: "A2", value: "安娜"), Cell(reference: "B2", value: "25") ])]))

try file?.write(worksheet: worksheet, at: "xl/worksheets/sheet1.xml")


2. SwiftExcel — 轻量级替代方案



SwiftExcel 是一个用于创建Excel文件的极简库。它不支持读取现有文件,但非常适合生成报告和导出数据。



通过CocoaPods安装

pod 'SwiftExcel'


创建表格示例

import SwiftExcel

let workbook = Workbook()let sheet = workbook.createSheet(named: "报告")

// 填充标题sheet.write(value: "产品", column: 1, row: 1)sheet.write(value: "价格", column: 2, row: 1)sheet.write(value: "数量", column: 3, row: 1)

// 数据sheet.write(value: "笔记本电脑", column: 1, row: 2)sheet.write(value: 1500.00, column: 2, row: 2)sheet.write(value: 10, column: 3, row: 2)

// 保存let path = FileManager.default.temporaryDirectory.appendingPathComponent("report.xlsx")try workbook.save(to: path)print("文件已保存:\\(path)")


3. XLConnect — 通过OpenXML处理Excel(macOS)



XLConnect 是一个用于macOS的库,它直接使用OpenXML格式。它支持复杂操作:合并单元格、样式、公式和图表。



通过Carthage安装

github "SwiftStudies/XLConnect" ~> 2.0


包含公式和样式的示例

import XLConnect

let workbook = Workbook()let sheet = try workbook.createShee

推荐