Csv2mg_bg

Csv2ImageApp

将 Csv 转换为 png 图像。

演示

iOS App

ScreenRecording_09-30-2024.01-58-08_1.MP4

MacOS App

Screen.Recording.2024-09-30.at.1.52.00.copy.mov

安装

将以下内容添加到您的 Package.swift 文件中

.package(url: "https://github.com/fummicc1/csv2img.git", from: "1.9.1"),

Csv2ImgCore (库)

将 Csv 转换为 png 图像。

Csv2Img 的安装

将以下内容添加到您的 Package.swift 文件中

.product(name: "Csv2Img", package: "csv2img"),

Csv2Img 的用法

您可以通过 3 种方式将 csv 转换为图像/pdf。

  1. 通过原始 String
 let rawCsv = """
 a,b,c
 1,2,3
 4,5,6
 7,8,9
 10,11,12
 """
let csv = Csv.loadFromString(rawCsv)
let image = try await csv.generate(exportType: .png)
 Output:
 | a  | b  | c  |
 | 1  | 2  | 3  |
 | 4  | 5  | 6  |
 | 7  | 8  | 9  |
 | 10 | 11 | 12 |
  1. 通过本地文件。
 let rawCsv = """
 a,b,c
 1,2,3
 4,5,6
 7,8,9
 10,11,12
 """
let url = URL(
    fileURLWithPath: "/Users/fumiyatanaka/Downloads/sample.csv"
)
rawCsv.data(using: .utf8)?.write(to: url)
// ----- ↑Just prepared for explanation. -----
let csv = Csv.loadFromDisk(url)
let data = try await csv.generate(fontSize: 12, exportType: .png)
 Output:
 | a  | b  | c  |
 | 1  | 2  | 3  |
 | 4  | 5  | 6  |
 | 7  | 8  | 9  |
 | 10 | 11 | 12 |
  1. 通过网络资源。
let rawCsv = """
 a,b,c
 1,2,3
 4,5,6
 7,8,9
 10,11,12
 """
let url = URL(
    string: "https://raw.githubusercontent.com/fummicc1/csv2img/main/Fixtures/sample_1.csv"
)
// ----- ↑Just prepared for explanation. -----
let csv = Csv.loadFromNetwork(url)
let data = try await csv.generate(fontSize: 12, exportType: .png)
 Output:
 | a  | b  | c  |
 | 1  | 2  | 3  |
 | 4  | 5  | 6  |
 | 7  | 8  | 9  |
 | 10 | 11 | 12 |

输出图像

sample

CsvBuilder (Csv2Img 的辅助库)

一个用于在 Csv2Img 库中生成 Csv 的辅助库。

CsvBuilder 的安装

将以下内容添加到您的 Package.swift 文件中

.product(name: "CsvBuilder", package: "csv2img"),

CsvBuilder 的用法

  1. 定义符合 CsvComposition 的自定义类型。
import Foundation
import Csv2ImgCore


public struct CsvCompositionExample: CsvComposition {
    @CsvRows(column: "age")
    public var ages: [String]

    @CsvRows(column: "name")
    public var names: [String]

    public init() { }
}
  1. 构建 Csv
let composition: CsvCompositionExample = .init()
composition.ages.append(contentsOf: ["98", "99", "100"])
composition.names.append(contentsOf: ["Yamada", "Tanaka", "Sato"])
let csv = try! composition.build()

或者您可以像下面这样写。

let yamada = Csv.Row(index: 0, values: ["98", "Yamada"])
let tanaka = Csv.Row(index: 1, values: ["99", "Tanaka"])
let sato = Csv.Row(index: 2, values: ["100", "Sato"])
let csv = try! CsvCompositionParser.parse(type: CsvCompositionExample.self, rows: [yamada, tanaka, sato,])
结果
スクリーンショット 2022-08-26 12 54 22

Csv2ImgCmd (CLI)

一个从 csv 生成 png 图像的命令行工具。(使用 Csv2Img 库)

Csv2ImgCmd 的安装

将以下内容添加到您的 Package.swift 文件中

.product(name: "Csv2ImgCmd", package: "csv2img"),

Csv2ImgCmd 的用法

使用 Csv2Img 库的命令行界面。

如果您的计算机上有 csv 文件,您可以使用带有 --local, -l 的标志。

./Csv2ImgCmd --local ~/Downloads/sample.csv ./output.png

如果您想转换互联网上的 csv 文件,您可以使用带有 --network, -n 的标志。

./Csv2ImgCmd --network \
https://raw.githubusercontent.com/fummicc1/csv2img/main/Sources/Csv2ImgCmd/Resources/sample_1.csv \
output.png

贡献

欢迎提交 Pull requests、错误报告和功能请求 🚀

许可证

MIT 许可证