.NET'te Microsoft.Office.Interop.Excel'i kullanmak için hangi referansa ihtiyacım var?


102

Excel dosyalarını işlemek / otomatikleştirmek için C # kullanmakla ilgileniyorum.

Web'e göz attıktan sonra VSTO'yu buldum ama görünüşe göre bunu Visual Studio Express Edition'da kullanamazsınız, bu yüzden kullanamam.

Sadece birkaç dakika önce, bu sitede, kodunda bu ad alanını kullanan bir soru fark ettim:

Microsoft.Office.Interop.Excel

Bu yüzden, kullanmam gereken tek şeyin gerekli referansı eklemek olup olmadığını merak ediyorum ve eğer öyleyse hangi referansı ekleyeceğim?

GÜNCELLEME

Kabul edilen yanıt olarak "Primary Interop Assemblies" kurdum, ancak bazı nedenlerden dolayı ".NET" altındaki Referans Ekle iletişim kutusunda hala eksikler ancak GAC'de mevcutlar.

Ben de "Gözat" seçeneğini kullanarak referansı ekledim ve Microsoft.Office.Interop.Excel.dll GAC klasöründe .

Ancak bu sitede GAC'den referans eklemeyle ilgili benzer sorular aradığınızda, bunun tavsiye edilmediği görülmektedir.

Yanıtlar:


102

Güncelleme (teşekkürler user2347528)

Bu derlemeler NuGet paketleri olarak mevcuttur ve bu benim orijinal cevabımdan çok daha kolaydır.

Projenizdeki Referanslara sağ tıklayıp NuGet paketlerini yönet ... seçeneğini belirleyerek ve aşağıda listelenen paketlerden birini arayarak veya Paket Yöneticisi Konsolunu kullanarak yükleyebilirsiniz:

PM> Install-Package Microsoft.Office.Interop.Excel

Bunlar, Office ile kurulabilen veya ayrı olarak indirilip kurulabilen "Birincil Birlikte Çalışma Montajları" olarak mevcuttur. Nasıl yapılır: Office Birincil Birlikte Çalışma Derlemelerini Yükleme .

Bunlar yüklendikten sonra, .NET altındaki Referans Ekle iletişim kutusundaki projenizde bunlara başvurabilirsiniz. Listelenen Microsoft.Office.Interop derlemelerini görmüyorsanız, henüz yüklenmemişlerdir. Bunları kurulumunuzdan yükleyin veya ayrı ayrı indirip kurun (indirmeler için yukarıdaki bağlantıma bakın).


Microsoft Office adlı "Com" sekmesinde bir dizi bileşen buldum ... Bunlar o mu?
user850010

1
Bunlar, Visual Studio'nun .NET birlikte çalışma derlemeleri oluşturabileceği COM hizmetleridir. Bunları kullanmanız tavsiye edilmez; Microsoft'tan yayımlanan PIA derlemelerini kullanmalısınız. Referans Ekle iletişim kutusundaki .NET sekmesinde görünmeleri gerekir. Bunları görmüyorsanız, PIA'yı Office kurulumunuzdan yüklemeniz veya cevabımda bağladığım gibi ayrı olarak indirmeniz gerekir.
moribvndvs

2
@HackedByChinese Referans ekle iletişim kutusunda .NET sekmesi göremiyorum

1
Visual Studio 2013'te, Referans Ekle penceresinin sol menüsünde Assemblies-> Extensions altında bu referansları buldum.
Benjamin Ray

1
Windows 2012 sunucusuna Microsoft.Office.Interop.Excel.dll kullanan bir C # programı yüklemeye çalışıyorum. Program Windows 7 bilgisayarımda iyi çalışıyor, ancak PIA'ları sunucuya yükledikten sonra bile System.Runtime.Interop.COM bileşenlerinin eksik olduğuna dair bir hata mesajı alıyorum. Excel.Application () nesnesinin örneğini oluşturmaya çalıştığımda program bozuluyor. Kaçırdığım başka bir şey var mı?
Melanie

50

Bu problemi kendim yaşadım ve kabul edilen cevap bana yardımcı olmadı ama ben çözdüm:

Add reference > Browse > C: > Windows > assembly > GAC > Microsoft.Office.Interop.Excel > 12.0.0.0_etc > Microsoft.Office.Interop.Excel.dll


2
Her yerde bu çözümü arıyordum.
Karim O.

3
Bahşiş için teşekkürler. Microsoft'un kendisinin bunu güvenilir bir şekilde çalıştıramaması çok ironik - 2014 ve biz hala doğrudan .dlls'ye atıfta bulunuyoruz ...
Mike Honey

12
Add Reference-> COM-> Microsoft Excel 12.0 Object Libraryaynı şeyi yapar.
primo

Sunucuda çalışıyor mu? Office'i sunucuya yüklemeden mi?
Naveen Katakam

tamam teşekkürler. herhangi bir fikrin var mı? ofis kurmadan kullanabilir miyim .. Ben azure kullanıyorum.
Naveen Katakam

24

Yanıtlar sorunumu çözmeme yardımcı olmadı, montajları Microsoft'un msi yükleyicisini kullanarak kurmama rağmen bulamadım (ve göz atamadım). Benim için excel derlemesi altındaC:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll


Klasör GAC, GAC_32 ve GAC_64'ü denedikten sonra hiçbir zaman son GAC_MSIL klasöründe olmayacağını düşündüm. Ama öyleydi. Yorumun için teşekkürler. Benim için harika çalıştı!
Marty_in_a_Box

En basit ve en iyi cevap. Tesekkurler dostum.
Wessam El Mahdy

8

Sadece referans ekleyin Microsoft.Office.Interop.Excel.

MicroSoft Excel ile ilgili sınıfları içerir, daha fazla referans eklemeye gerek yoktur.


1
Bu denediğim ilk şey. Ancak "Ofis" kısmı bulunamadı.
user850010

Aslında @ user850010 ile aynı sorunu yaşadım ama sonunda çözümümdeki yanlış projenin referanslar klasörüne sağ tıklayıp eklediğimi fark ettim.
Kullanıcı

4

Ben ne yapmaya çalışıyoruz eklemek olduğunu tahmin Microsoft.Office.Interop.Excelile usingde bulunacak bir alışkanlık bu durumda, uygulamanızda başvurusunu ekleyerek dışarı ile açıklamaya. İfade ile aramadan önce, usinguygulamanıza bir referans eklemeniz gerekir. Sağ tıklayın Referencesve Excel Interopreferansı ekleyin .


4

Başvuru ekle> Gözat> C:> Windows> montaj> GAC> Microsoft.Office.Interop.Excel> 12.0.0.0_wasd ..> Microsoft.Office.Interop.Excel.dll



3

Microsoft Office yüklediyseniz, Interop.Excel'e bir referans ekleyebilmelisiniz.

Örneğin, bunu yazdığım bilgisayarda MSVS 2010 C # Express ve Office 2010 var. Microsoft.Office.Interop.Excel 11.0.0.0'a bir referans ekleyebilirim.

'Umarım yardımcı olur


3

com bileşeninde, adı "Microsoft Office 14 Nesne Kitaplığı"


1
VS2010: "Microsoft Office 14 Nesne Kitaplığı" na bir COM başvurusu eklemek yalnızca "Microsoft.Office.Core" öğesine bir başvuru ekler. Daha iyi: "Microsoft Excel 14.0 Nesne Kitaplığı" COM başvurusunu kullanın. Doğrudan yüklenen Excel yürütülebilir dosyasını işaret eder, ancak hem "Microsoft.Office.Core" hem de "Microsoft.Office.Interop.Excel" için bir başvuru olarak görünecektir. Yalnızca Excel'in yüklü olduğu makinelerde çalıştırmanız ve dağıtmanız gerekiyorsa yardımcı olacaktır.
JS

3

Office 2007'den beri en iyi seçenek bunun için Open XML SDK kullanmaktır . Word.Interop'u kullandık, ancak bazen duruyor ve Microsoft'un bunu sunucu tarafı belge biçimlendirmesi olarak kullanması tavsiye edilmiyor, bu nedenle Open XML SDK, DOCX ve Open XML biçimlerinde çok kolay bir şekilde sözcük belgeleri oluşturmanıza olanak tanır. Ölçeklenebilirlik, güven (dosyalar, eğer bozulmuşsa yeniden oluşturulabilir) ve diğer çok ince özelliklerle iyi gitmenizi sağlar.


2

İşte süper sağlam bir çözüm, sadece Debug / Release klasörünüzde excell.dll'ye ihtiyacınız var Benimki 77.824 bayt, bunu bir dosya olarak indirdim, bu aynı zamanda bazı insanların neden Debug derlediğini ancak Yayınlamadığını açıklar veya tam tersi.

Trento


2

Aynı problemi yaşadım ama bu cevapların hiçbiri bana yardımcı olmadı. Bilgisayarımdaki dll'yi Mostey'in belirttiği yerde buldum: ( C:\Windows\assembly\GAC_MSIL\Microsoft.Office.Interop.Excel\14.0.0.0__71e9bce111e9429c\Microsoft.Office.Interop.Excel.dll), ancak bu, inşa etmeye çalıştığım projede atıfta bulunulan değil.

Visual Studio 2012'deki projemizdeki referansa işaret ediyordu C:\Program Files (x86)\Microsoft Visual Studio 11.0\Visual Studio Tools for Office\. Bu yer benim için boştu, ancak herkes için iyi çalıştı. Birkaç deneme aldı, ancak sonunda çalışan bir yükleyiciyi buldum. Umarım bu, başkalarını da aynı güçlükten kurtarır!

-> VS2012 için Office Tools Bundle yükleyici <-

Bu, Office Belgeleri ve İndirme sayfasında bulunuyordu. Araçlar İndirmeleri'ne ilerleyin . Şu anda VS2013 için de bir tane var.


1

1. İndirin ve kurun: Microsoft Office Geliştirici Araçları

2. Aşağıdakilerden referanslar ekleyin:

C: \ Program Dosyaları (x86) \ Microsoft Visual Studio 11.0 \ Office \ PIA \ Office15 için Visual Studio Araçları


1

Aynı sorunu yaşadım ve VS2012'yi VS2015'e yükselttikten sonra Microsoft.Office.Interop "Add Reference" seçeneğinde görünmüyordu. Temel olarak kurulumu onardım ( Denetim Masası> Programlar ve Özellikler> VS 2012> Sağ tıklayın Değiştir> Onar ) ve Microsoft Office bileşenini ekledim. Bundan sonra aynı çözüm çalışmaya başladı.


0

Projenizin 32 bit olduğundan emin olun.

Referans-> Derlemeler-> Ara "Ofis" bölümünde bulunan tüm Office Birlikte Çalışma derlemelerini "32 biti tercih et ve yeniden oluştur" seçeneğini işaretlediğimde bu sorunu yaşadım.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.