Бесплатная Swift библиотека для чтения и записи файлов Excel XLSX

Открытая, надежная Swift 5 библиотека, позволяющая разработчикам создавать и читать файлы XLSX, копировать, удалять листы, применять стили и форматирование и прочее бесплатно.

Что такое XlsxReaderWriterSwift?

Устали бороться со сложными форматами таблиц в проектах Swift? Представьте ситуацию, когда вашему приложению нужно создать подробный отчет, импортировать пользовательские данные из шаблона или даже построить динамическую финансовую модель — всё напрямую в экосистеме iOS. Ручной разбор CSV-файлов ограничен, а использование внешних сервисов для обработки XLSX-файлов неэффективно. Здесь на помощь приходит XlsxReaderWriterSwift, мощная и нативная открытая библиотека. Она предоставляет Swift‑разработчикам интуитивный и надёжный набор инструментов для бесшовного чтения и записи в современном формате .xlsx от Microsoft Excel, прямо в ваших приложениях iOS, macOS и visionOS.

XlsxReaderWriterSwift — надёжная библиотека Swift 5, позволяющая разработчикам создавать и читать XLSX‑файлы, ставшие стандартом современных таблиц Excel. Библиотека предоставляет множество важных возможностей для работы с XLSX‑файлами Microsoft Excel: чтение файлов, создание новых, применение стилей и форматирования к ячейкам, добавление и управление изображениями в ячейках, генерация отчетов, встраивание таблиц и многое другое. Основанная на C‑библиотеке libxlsxwriter, она предлагает широкий набор функций для экосистемы Apple. Это означает, что вы можете генерировать полностью совместимые, на 100 % совместимые файлы Excel напрямую из вашего приложения для iOS или macOS.

Previous Next

Начало работы с XlsxReaderWriterSwift

Рекомендуемый способ установки XlsxReaderWriterSwift — использование CocoaPods. Пожалуйста, выполните следующую команду для беспроблемной установки.

Установить XlsxReaderWriterSwift через CocoaPods

 pod "XlsxReaderWriterSwift"

pod install

Установить XlsxReaderWriterSwift через GitHub

git clone https://github.com/mehulparmar4ever/XlsxReaderWriterSwift.git

Вы можете скачать его напрямую с GitHub.

Создание и запись нового XLSX файла через Swift библиотеку

Создание нового файла с нуля и заполнение его данными так же просто. Открытая библиотека XlsxReaderWriterSwift предоставляет полную поддержку создания и управления новыми таблицами Excel XLSX внутри Swift‑приложений. Разработчики могут создавать новые листы, переименовывать существующие, копировать данные листа, сохранять документ в указанное место и т.д. Пример ниже показывает, как разработчики могут создать новый лист Excel XLSX, используя Swift‑библиотеку.

Как создать новый лист Excel XLSX с помощью Swift-библиотеки?

import XlsxReaderWriterSwift

// 1. Create a new, empty document
let document = BRAOfficeDocumentPackage()

// 2. Get the first worksheet and give it a name
guard let worksheet = document.workbook.worksheets.first as? BRAWorksheet else {
    return
}
worksheet.name = "User Data"

// 3. Write different types of data to cells
worksheet.cell(forCellReference: "A1", shouldCreate: true).stringValue = "Name"
worksheet.cell(forCellReference: "B1", shouldCreate: true).stringValue = "Score"
worksheet.cell(forCellReference: "A2", shouldCreate: true).stringValue = "Alice"
worksheet.cell(forCellReference: "B2", shouldCreate: true).integerValue = 95
worksheet.cell(forCellReference: "A3", shouldCreate: true).stringValue = "Bob"
worksheet.cell(forCellReference: "B3", shouldCreate: true).integerValue = 87

// 4. Define a file path to save the document
let documentsDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = documentsDirectory.appendingPathComponent("NewReport.xlsx")

// 5. Save the document to the specified path
do {
    let data = document.save()
    try data?.write(to: fileURL)
    print("Spreadsheet saved successfully at: \(fileURL.path)")
} catch {
    print("Failed to save spreadsheet: \(error)")
}

Применение продвинутого стилирования ячеек через Swift

Таблица — это не только данные; важна и их презентация. Открытый API XlsxReaderWriterSwift предоставляет широкие возможности управления стилем ячеек. Он выходит за пределы простого ввода данных: можно применять множество вариантов форматирования, включая выравнивание ячеек, числовой формат, создание новых ячеек, новых стилей, доступ к существующим стилям, добавление границы к диапазону ячеек и т.п. Ниже простой пример, показывающий, как разработчики могут применять продвинутые стили к ячейкам Excel с помощью Swift‑команд.

Как применить продвинутые стили к ячейкам Excel с помощью Swift-библиотеки?

// ... (after creating a worksheet and cell)

// Get or create a cell
let headerCell = worksheet.cell(forCellReference: "A1", shouldCreate: true)
headerCell.stringValue = "Sales Report"

// Access the cell's style
let style = headerCell.cellStyle()

// Configure the style
style.font.bold = true
style.font.size = 18
style.fill.foregroundColor = .blue // Background color
style.fill.patternType = .solid
style.alignment.horizontal = .center

// Apply a border to a range of cells
let borderStyle = BRABorderStyle()
borderStyle.lineStyle = .medium
borderStyle.color = .darkGray

let dataRange = worksheet.cells(inRows: 1...3, columns: 1...2)
for cell in dataRange {
    (cell as? BRACell)?.cellStyle().bottomBorder = borderStyle
}

Чтение XLSX файла через Swift библиотеку

Открытая библиотека XlsxReaderWriterSwift позволяет разработчикам манипулировать данными внутри таблиц Excel с помощью Swift‑API. Она предоставляет операции по сортировке, фильтрации и вычислению значений внутри листов Excel. Это делает её идеальным инструментом для анализа данных и создания отчетов. Кроме того, разработчики могут легко извлекать данные из конкретных ячеек, строк или столбцов листа Excel через Swift‑API, что особенно полезно при работе с большими наборами данных, когда нужны только определённые сведения.

Как читать данные из файла Excel XLSX с бесплатным Swift API?

import XlsxReaderWriterSwift
// 1. Locate the .xlsx file in your app's bundle
guard let filePath = Bundle.main.path(forResource: "SampleData", ofType: "xlsx") else {
    print("File not found!")
    return
}

// 2. Create a BRAOfficeDocumentPackage object from the file
let document = BRAOfficeDocumentPackage.open(filePath)

// 3. Get the first worksheet
guard let worksheet = document.workbook.worksheets.first as? BRAWorksheet else {
    print("No worksheets found!")
    return
}

// 4. Read data from specific cells
if let cellA1 = worksheet.cell(forCellReference: "A1") {
    let stringValue = cellA1.stringValue() // Gets the value as a String
    print("A1: \(stringValue)")
}

if let cellB2 = worksheet.cell(forCellReference: "B2") {
    let numberValue = cellB2.floatValue() // Gets the value as a Float
    print("B2: \(numberValue)")
}

// 5. Iterate over a range of cells
for row in 1...5 {
    for column in 1...3 {
        let cellReference = "\(UnicodeScalar(64 + column)!)\(row)" // Creates refs like A1, B1, etc.
        if let cell = worksheet.cell(forCellReference: cellReference),
           let value = cell.stringValue() {
            print("\(cellReference): \(value)")
        }
    }
}

 Русский