.NET 4.0(Visual Studio 2010 Beta 1)を使用してF#とExcelの統合を行う方法については、.NET 4.0(Visual Studio 2010 Beta 1)のF#とExcelの統合
私はこれをCTPリリースで行う方法を知っていますが、.NET 4.0(Visual Studio 2010 Beta 1)ではもっと簡単になるはずです。
.NET 4.0(Visual Studio 2010 Beta 1)を使用してF#とExcelの統合を行う方法については、.NET 4.0(Visual Studio 2010 Beta 1)のF#とExcelの統合
私はこれをCTPリリースで行う方法を知っていますが、.NET 4.0(Visual Studio 2010 Beta 1)ではもっと簡単になるはずです。
Office interopを改善するために、最新のF#CTPリリース(Visual Studio 2010 Beta1)に「秘密のソース」は追加されていません。あなたはF#をC#'s new support for Dynamicと混同しているかもしれません。
ただし、F#のOffice相互運用機能はC#と同じです。ネイティブのCOM APIまたは管理された新しいVisual Studio Tools for Office(VSTO)ライブラリを使用できます。残念ながら、F#にはC#のようなVSTOアドインを作成するためのUIデザイナーがいないため、Office interopを実行する最も簡単な方法はCOM APIを使用することです。
次のスニペットは、あなたのマイピクチャフォルダ内の画像に関する情報をExcelワークシートを作成:
#r "Microsoft.Office.Interop.Excel"
open System
open System.IO
open System.Reflection
open Microsoft.Office.Interop.Excel
let app = ApplicationClass(Visible = true)
let sheet = app.Workbooks
.Add()
.Worksheets.[1] :?> _Worksheet
let setCellText (x : int) (y : int) (text : string) =
let range = sprintf "%c%d" (char (x + int 'A')) (y+1)
sheet.Range(range).Value(Missing.Value) <- text
let printCsvToExcel rowIdx (csvText : string) =
csvText.Split([| ',' |])
|> Array.iteri (fun partIdx partText -> setCellText partIdx rowIdx partText)
let rec filesUnderFolder basePath =
seq {
yield! Directory.GetFiles(basePath)
for subFolder in Directory.GetDirectories(basePath) do
yield! filesUnderFolder subFolder
}
// Print header
printCsvToExcel 0 "Directory, Filename, Size, Creation Time"
// Print rows
filesUnderFolder (Environment.GetFolderPath(Environment.SpecialFolder.MyPictures))
|> Seq.map (fun filename -> new FileInfo(filename))
|> Seq.map (fun fileInfo -> sprintf "%s, %s, %d, %s"
fileInfo.DirectoryName
fileInfo.Name
fileInfo.Length
(fileInfo.CreationTime.ToShortDateString()))
|> Seq.iteri (fun idx str -> printCsvToExcel (idx + 1) str)
単に空のVSTOシェルを書き込み、F#アセンブリDLLを作成し、それを使用します。私はいつも優れたVS2010デザイナーを使用していて、それをF#DLLにリンクしています。そして、あなたは両方の世界から最高のものを手に入れます。
こんにちはクリス、これは非常識です。私はちょうど、このビデオを見ていたDom Syme http://channel9.msdn.com/Blogs/David+Gristwood/An-F-Tutorial-with-Don-Syme-2-of-4彼は息を探検コーデックでF# 。私はそれがクールだと思った。フロントエンドとしてExcelを叩くことができれば、心を揺さぶるだけです。ありがとう! – gjvdkamp