Bazı Excel görevlerini otomatikleştirmek için F # kullanıyorum. Aslında iki sorunum var: 1. Bir Excel.Application örneği kullanarak bir çalışma kitabını açarsam, Excel'de çalışma kitabını açmış olsaydım otomatik olarak yüklenecek olan tüm eklentileri özlerdim. Bu nedenle, çalışma kitabını önce tüm eklentiler yüklü olan Excel'de açmaya çalışıyorum ve örneği F # 'ye teslim ediyorum. Daha sonra ikinci sayıyı aldım: 2. Marshal.GetActiveObject ("Excel.Application") aslında varolan örneği almak yerine yeni bir örnek açar.F # Excel Interop: Marshal.GetActiveObject ("Excel.Application") çalışmıyor
#r "Microsoft.Office.Interop.Excel"
#r "office"
open Microsoft.Office.Interop
open System
open System.Runtime.InteropServices
let app = Marshal.GetActiveObject("Excel.Application")
let app1 = app :?> Excel.Application
let wb = app1.ActiveWorkbook
let visible = app1.Visible
let n = app1.Workbooks.Count
ve çıkış: kod aşağıda
val uygulaması: obj
val app1: Excel.Application
val wb: Excel.Workbook = null
val görünür: bool = false
val n: int = 0
Ama eminim ki çalışan bir Excel örneğim var ve görülebilir. Teşekkürler!
[Excel birlikte yükleme XLLs ve DLL'leri yükleme] gördünüz mü (http://stackoverflow.com/questions/13567512/excel-interop-loading-xlls-and-dlls) Excel'im yok bu yüzden test edemiyorum F # için. –
@GuyCoder: Bu yazıya işaret ettiğiniz için çok teşekkür ederim! Sorunumu çözebiliyor gibi görünüyor, ama sindirmek için biraz zamana ihtiyacı var. Aslında bazı manuel operasyonlar yapmaktan sakınmıyorum, eğer işe yarayabilirse ikinci yaklaşımımı tercih ederim. Neden işe yaramazsa mantıksız görünüyor. – xiphoid