F# 유형 공급자에 대한 간단한 설명

3724 단어 ExcelF#tech

유형 공급자는?


유형 공급업체 - F#| Microsoft Docs
F# 공급자는 프로그램에서 사용되는 유형, 속성 및 방법을 지정하는 구성 요소입니다.유형 공급자는 F# 컴파일러에 의해 생성되며 외부 데이터 소스를 기반으로 지정된 유형이 생성됩니다.
그런 것 같아요.
읽은 JSON, XML, CSV, HTML, RDB 등 데이터 원본에서 형식을 생성하면 IntelliSense도 유효해지는 것으로 알고 있습니다.
데이터를 처리하는 토대에서 주요 파일의 유형 제공 업체가 존재하기 때문에 나는 스스로 제작할 필요가 없다고 생각한다SDK도 있음도 스스로 제작할 수 있다.

이거 있으면 뭐가 좋아?


F# 데이터 액세스용 라이브러리FSharp.Data 및 문서SQLProvider의 예제 프레젠테이션에도 있지만 데이터 소스에 따라 범주를 만들 필요는 없습니다.

소례


Json


Json의 유형 공급자는 FSharp.Data의 창고에 있습니다.위에서 설명한 대로 CSV, XML, HTML 유형 제공자도 여기에 포함됩니다.
그나저나 FSharp.Data 이외에도 풍설기 등의 기능이 있어 웹 커튼에도 사용할 수 있다.
[
    {
        "name" : "John Doe",
        "age"  : 20,
        "gender" : "M"
    },
    {
        "name" : "Taro Tanaka",
        "age"  : 33,
        "gender" : "M",
        "country" : "Japan",
        "active" : true
    }
]
상기 Json 파일을 예로 들어 준비한다.
자신이 어떤 유형을 정의하지 않은 상태에서는 다음과 같이 기술할 수 있다.
open FSharp.Data

type ExampleJsonData = JsonProvider<"exampleData.json">
let json = ExampleJsonData.GetSamples()

json |> Array.iter(fun j -> printfn "%s %d %s" j.Name j.Age j.Gender)
// John Doe 20 M
// Taro Tanaka 33 M
참고로 한 쪽"country"등으로만 Option로 처리됩니다.

Excel


ExcelProvider를 사용하여 Excel 파일을 처리할 수도 있습니다.
String
Float
Boolean
Date
Time
Currency
Name
일본
A
1.23
TRUE
2020/10/25
10:55:25 AM
1250엔
Taro Tanaka
다나카
B
2.22
FALSE
2020/10/26
12:54:12 PM
10015엔
John Doe
존드
위의 데이터를 사용하여 Excel 파일을 준비합니다.
open FSharp.Interop.Excel

type DataTypesTest = ExcelFile<"DataTypes.xlsx">
let file = DataTypesTest()
let row = file.Data

row |> Seq.iter(fun r -> 
    printfn "%s %b %s %A %f %s %A %s" r.String r.Boolean r.Currency r.Date r.Float r.String r.Time r.日本名)
// A true 1250円 2020/10/25 0:00:00 1.230000 A 1899/12/31 10:55:25 田中 太郎
// B false 10015円 2020/10/26 0:00:00 2.220000 B 1899/12/31 12:54:12 ジョン  ドゥ
일본어가 포함된 경우에도 속성으로 액세스할 수 있습니다.

끝말


최근에는 연월일마다 산실된 엑셀 파일을 취합할 기회가 생긴 것 같아 오랜만에 다시 엑셀 조작을 조사해 주목형 공급업체의 기회를 얻어 대충 소개했다.
각 프로그램 라이브러리는 dotnet CLI를 사용하여 프로젝트에 추가할 수 있습니다.
dotnet add package FSharp.Data
dotnet add package ExcelProvider && dotnet add package ExcelDataReader && dotnet add package ExcelDataReader.DataSet
또한 F#는 .fsx의 확장명으로 저장할 수 있으며 F#Interactivedotnet fsi에서 실행하여 스크립트 언어로 사용할 수 있다.
기타 Azure StorageGraphQL용 라이브러리도 있습니다.

좋은 웹페이지 즐겨찾기