F#으로 Word 문서 만들기
C#에서도 좋았습니다만, R유저(dplyr)였기 때문에 F#가 확실히 오기 때문입니다.
라이브러리로 Microsoft.Office.Interop.Word를 사용하면 Word를 편집할 수 있습니다.
환경
Visual studio 2017
Visual F#
프로젝트 만들기, 참조 설정
[파일]→[신규작성]→[프로젝트]
[Visual F#]→[콘솔 애플리케이션]→프로젝트 만들기
솔루션 탐색기 → 참조 설정 오른쪽 클릭 → 참조 추가 → Microsoft.Office.Interop.Word 및 Office 선택
Program.fs를 작성합니다.let mutable app = new Applicatio
정도까지 쓰면 인텔리센스가 듣고 마음대로 라이브러리가 위쪽에 추가됩니다. 가능한 한 편하게 합시다.
나오지 않는 경우는 Ctrl+Space를 누르면 인텔리센스가 나옵니다.
C#과 같이 쓰면 최종적으로 다음과 같은 코드가 됩니다.
Propram.fsopen Microsoft.Office.Interop.Word
// F# の詳細については、http://fsharp.org を参照してください
// 詳細については、'F# チュートリアル' プロジェクトを参照してください。
[<EntryPoint>]
let main argv =
let mutable app = new ApplicationClass()//Wordを開く
app.Visible <- false//Wordが画面に表示されないようにする
let mutable doc = app.Documents.Add()//Wordの中に文書を開く
doc.Range().Text <- "Hello, World!\n"//文書の内容を書き換え
let mutable endOfLines = (doc.Range().End - 1) :> obj //文末を取りだしてobj型にアップキャスト
doc.Range(ref endOfLines).Text <- "Hello, Word!\n"//obj型を参照型にして範囲を指定後、文章を追加
let filename = (System.IO.Directory.GetCurrentDirectory() + @"\HelloWord.docx") :> obj
doc.SaveAs2000(ref filename) //保存
doc.Close() //文書を閉じる
app.Quit() //Wordを閉じる
0 // 整数の終了コードを返します
작성한 후 Ctrl+F5를 누르면 앱이 시작됩니다.
끝나면 프로젝트 이름\bin\debug 폴더에 HelloWord.docx가 생성됩니다.
덤 : 대입 연산자를 미워하는 당신에게
이번, C#의 코드를 참고로 했습니다만, 코드를 보면(자), 대입(바인드) 너무 아닐까? 라고 생각했습니다. 실망합니다.
필자는 할당 연산자를 미워하는 R 사용자 그래서 F#인데 다시 한 번 마음이 가득 채워 파이프라인 연산자로 다시 썼습니다.
Program.fsopen Microsoft.Office.Interop.Word
// F# の詳細については、http://fsharp.org を参照してください
// 詳細については、'F# チュートリアル' プロジェクトを参照してください。
[<EntryPoint>]
let main argv =
let mutable app = new ApplicationClass() //Word開く
app.Visible <- false //画面に表示させない
let mutable doc = app.Documents.Add() //文書開く
"Hello, World!\n"
|> fun x -> doc.Range().Text <- x //文書内容書き換え
"Hello, Word!\n" //文末に書き加える(内容と書込場所の2変数必要)
|> fun x -> doc.Range().End //ネストして1変数関数にカリー化
|> fun y -> y - 1 //0スタートのため
|> fun y -> ref (y :> obj) //参照渡し用にアップキャスト
|> fun y -> doc.Range(y).Text <- x //代入
"HelloWord.docx"
|> fun x -> System.IO.Directory.GetCurrentDirectory() + @"\" + x //実行場所の情報を加える
|> fun x -> ref (x :> obj) //参照渡し用にアップキャスト
|> fun x -> doc.SaveAs2000(x) //保存
doc.Close()
app.Quit()
0 // 整数の終了コードを返します
깨끗이!
이제 입력이 무엇인지 알기 쉬워졌습니다.
그리고 Qiita의 신택스 하이라이트에서는 나오지 않지만 Visual Studio의 경우 Mutable 변수가 노랗게되어 있기 때문에 어디에서 참조를 다시 쓸 수 있는지 알기 쉽습니다. 이 근처 F# 좋은 와….
참고
Reference
이 문제에 관하여(F#으로 Word 문서 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kyusque/items/7e10ce41d452a87af3c6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[파일]→[신규작성]→[프로젝트]
[Visual F#]→[콘솔 애플리케이션]→프로젝트 만들기
솔루션 탐색기 → 참조 설정 오른쪽 클릭 → 참조 추가 → Microsoft.Office.Interop.Word 및 Office 선택
Program.fs를 작성합니다.
let mutable app = new Applicatio
정도까지 쓰면 인텔리센스가 듣고 마음대로 라이브러리가 위쪽에 추가됩니다. 가능한 한 편하게 합시다.나오지 않는 경우는 Ctrl+Space를 누르면 인텔리센스가 나옵니다.
C#과 같이 쓰면 최종적으로 다음과 같은 코드가 됩니다.
Propram.fs
open Microsoft.Office.Interop.Word
// F# の詳細については、http://fsharp.org を参照してください
// 詳細については、'F# チュートリアル' プロジェクトを参照してください。
[<EntryPoint>]
let main argv =
let mutable app = new ApplicationClass()//Wordを開く
app.Visible <- false//Wordが画面に表示されないようにする
let mutable doc = app.Documents.Add()//Wordの中に文書を開く
doc.Range().Text <- "Hello, World!\n"//文書の内容を書き換え
let mutable endOfLines = (doc.Range().End - 1) :> obj //文末を取りだしてobj型にアップキャスト
doc.Range(ref endOfLines).Text <- "Hello, Word!\n"//obj型を参照型にして範囲を指定後、文章を追加
let filename = (System.IO.Directory.GetCurrentDirectory() + @"\HelloWord.docx") :> obj
doc.SaveAs2000(ref filename) //保存
doc.Close() //文書を閉じる
app.Quit() //Wordを閉じる
0 // 整数の終了コードを返します
작성한 후 Ctrl+F5를 누르면 앱이 시작됩니다.
끝나면 프로젝트 이름\bin\debug 폴더에 HelloWord.docx가 생성됩니다.
덤 : 대입 연산자를 미워하는 당신에게
이번, C#의 코드를 참고로 했습니다만, 코드를 보면(자), 대입(바인드) 너무 아닐까? 라고 생각했습니다. 실망합니다.
필자는 할당 연산자를 미워하는 R 사용자 그래서 F#인데 다시 한 번 마음이 가득 채워 파이프라인 연산자로 다시 썼습니다.
Program.fsopen Microsoft.Office.Interop.Word
// F# の詳細については、http://fsharp.org を参照してください
// 詳細については、'F# チュートリアル' プロジェクトを参照してください。
[<EntryPoint>]
let main argv =
let mutable app = new ApplicationClass() //Word開く
app.Visible <- false //画面に表示させない
let mutable doc = app.Documents.Add() //文書開く
"Hello, World!\n"
|> fun x -> doc.Range().Text <- x //文書内容書き換え
"Hello, Word!\n" //文末に書き加える(内容と書込場所の2変数必要)
|> fun x -> doc.Range().End //ネストして1変数関数にカリー化
|> fun y -> y - 1 //0スタートのため
|> fun y -> ref (y :> obj) //参照渡し用にアップキャスト
|> fun y -> doc.Range(y).Text <- x //代入
"HelloWord.docx"
|> fun x -> System.IO.Directory.GetCurrentDirectory() + @"\" + x //実行場所の情報を加える
|> fun x -> ref (x :> obj) //参照渡し用にアップキャスト
|> fun x -> doc.SaveAs2000(x) //保存
doc.Close()
app.Quit()
0 // 整数の終了コードを返します
깨끗이!
이제 입력이 무엇인지 알기 쉬워졌습니다.
그리고 Qiita의 신택스 하이라이트에서는 나오지 않지만 Visual Studio의 경우 Mutable 변수가 노랗게되어 있기 때문에 어디에서 참조를 다시 쓸 수 있는지 알기 쉽습니다. 이 근처 F# 좋은 와….
참고
Reference
이 문제에 관하여(F#으로 Word 문서 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/kyusque/items/7e10ce41d452a87af3c6
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
open Microsoft.Office.Interop.Word
// F# の詳細については、http://fsharp.org を参照してください
// 詳細については、'F# チュートリアル' プロジェクトを参照してください。
[<EntryPoint>]
let main argv =
let mutable app = new ApplicationClass() //Word開く
app.Visible <- false //画面に表示させない
let mutable doc = app.Documents.Add() //文書開く
"Hello, World!\n"
|> fun x -> doc.Range().Text <- x //文書内容書き換え
"Hello, Word!\n" //文末に書き加える(内容と書込場所の2変数必要)
|> fun x -> doc.Range().End //ネストして1変数関数にカリー化
|> fun y -> y - 1 //0スタートのため
|> fun y -> ref (y :> obj) //参照渡し用にアップキャスト
|> fun y -> doc.Range(y).Text <- x //代入
"HelloWord.docx"
|> fun x -> System.IO.Directory.GetCurrentDirectory() + @"\" + x //実行場所の情報を加える
|> fun x -> ref (x :> obj) //参照渡し用にアップキャスト
|> fun x -> doc.SaveAs2000(x) //保存
doc.Close()
app.Quit()
0 // 整数の終了コードを返します
Reference
이 문제에 관하여(F#으로 Word 문서 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kyusque/items/7e10ce41d452a87af3c6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)