﻿// SwiftSheets 1.0.0 / Swift 6.2+
// SwiftPM の実行可能ターゲットに SwiftSheets を追加して実行します。
// カレントディレクトリに sales.xlsx / sales-updated.xlsx / sales.ods を生成します。
import Foundation
import SwiftSheets

do {
    var book = Workbook()
    book.sheets[0].name = "Sales"
    book.editSheet(at: 0) { sheet in
        sheet.append(["地域", "売上（円）"])
        sheet.append(["東京", 120_000])
        sheet.append(["大阪", 85_000])
        sheet.setStyle("A1:B1") {
            $0.font.bold = true
            $0.fill = .solid(Color(hex: "EAF1DC"))
        }
        sheet.setStyle("B2:B3") {
            $0.numberFormat = "#,##0"
        }
        sheet.autofitColumns()
    }
    let result = try book.write(
        to: URL(filePath: "sales.xlsx"))
    print(result.warnings)
}

do {
    // 「XLSX作成」で保存したファイルを開く
    var book = try Workbook(
        contentsOf: URL(filePath: "sales.xlsx"))
    print(book.readWarnings)

    try book.editSheet(named: "Sales") { sheet in
        sheet["B2"] = 150_000
        sheet.setStyle("B2") {
            $0.font.bold = true
            $0.fill = .solid(Color(hex: "E0F49B"))
        }
    }
    let result = try book.write(
        to: URL(filePath: "sales-updated.xlsx"))
    print(result.warnings)
}

do {
    // 「XLSX作成」で保存したファイルを変換
    let book = try Workbook(
        contentsOf: URL(filePath: "sales.xlsx"))
    print(book.readWarnings)

    // 保存前に、変換で失われる内容を確認できる
    let result = try book.write(as: .ods)
    print(result.warnings)

    // アプリでは警告に応じて保存するかを判断
    try result.data.write(
        to: URL(filePath: "sales.ods"),
        options: .atomic)
}

